日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

最佳實踐:SQL組件

本文以查詢某區域內各城市的銷售總額排行為例,為您介紹組件的使用。

前提條件

步驟一:定義組件

您需先參考定義SQL組件創建get_top_n組件,組件配置詳情如下。image.png

  • 組件參數配置

    參數分類

    參數名稱

    參數類型

    參數描述

    參數定義

    輸入參數

    myinputtable

    table

    指定的銷售明細數據表。

    area_id string
    city_id string
    order_amt double
    rank bigint

    topn

    string

    取銷售排行的前N名。

    不涉及

    輸出參數

    myoutput

    table

    目標輸出表,用于獲取各個區域下指定前N名的城市排行。

    area_id string
    city_id string
    order_amt double
    rank bigint
  • 組件過程體定義

    INSERT OVERWRITE TABLE  @@{myoutput}  PARTITION (pt='${bizdate}')
     SELECT r3.area_id,
     r3.city_id,
     r3.order_amt,
     r3.rank
    from (
    SELECT
       area_id,
       city_id,
       rank,
       order_amt_1505468133993_sum as order_amt ,
       order_number_1505468133991_sum,
       profit_amt_1505468134000_sum
    FROM
       (SELECT
       area_id,
       city_id,
       ROW_NUMBER() OVER (PARTITION BY r1.area_id ORDER BY r1.order_amt_1505468133993_sum DESC) AS rank,
       order_amt_1505468133993_sum,
       order_number_1505468133991_sum,
       profit_amt_1505468134000_sum
    FROM
       (SELECT
       area AS area_id,
       city AS city_id,
       SUM(order_amt) AS order_amt_1505468133993_sum,
       SUM(order_number) AS order_number_1505468133991_sum,
       SUM(profit_amt) AS profit_amt_1505468134000_sum
    FROM
      @@{myinputtable}
    WHERE
       SUBSTR(pt, 1, 8) IN ( '${bizdate}' )
    GROUP BY
       area,
       city )
       r1 ) r2
    WHERE
       r2.rank >= 1 AND r2.rank <= @@{topn}
    ORDER BY
       area_id,
       rank limit 10000) r3;

步驟二:使用組件

您需參考引用SQL組件創建xc_引用組件_get_top_nSQL組件節點,引用步驟一創建的get_top_n組件,并配置相應的參數值,步驟如下圖。image.png參數值說明如下:

  • 輸入參數myinputtable:為該參數指定一個輸入表company_sales_record,作為數據輸入源。輸入表的結構請參見創建銷售明細數據表

  • 輸入參數topn:為該參數指定按照銷售額正序排序,每個區域的城市排行取前多少名。示例取前10名。

  • 輸出參數myoutput:為該參數指定加工輸出的結果的表名稱company_sales_top_n。輸出表的結構請參見創建目標輸出表

后續步驟

當您完成當前節點的任務開發后,通常您可進行以下操作。

  • 調度配置:配置節點的周期性調度屬性。任務需要周期性調度運行時,您需要設置節點后續實際運行過程中的重跑屬性、調度依賴關系等,操作詳情請參見任務調度屬性配置概述。

  • 任務調試:對當前節點的代碼進行測試運行,確認代碼邏輯符合預期,操作詳情請參見任務調試流程。

  • 任務發布:完成所有開發相關操作后,您需要將所有任務節點進行發布,發布后節點即會根據調度配置結果進行周期性運行,操作詳情請參見發布任務

附錄:表結構說明

您需在ODPS SQL節點中創建銷售明細數據表和目標輸出表,詳情請參見開發ODPS SQL任務。

創建銷售明細數據表

銷售明細數據表的建表語句如下:

CREATE TABLE IF NOT EXISTS company_sales_record
(
    order_id         STRING COMMENT '訂單編號(PK)',
    report_date      STRING COMMENT '訂單日期',
    customer_name    STRING COMMENT '客戶名稱',
    order_level      STRING COMMENT '訂單等級',
    order_number     DOUBLE COMMENT '訂單數量',
    order_amt        DOUBLE COMMENT '訂單金額',
    back_point       DOUBLE COMMENT '折扣點',
    shipping_type    STRING COMMENT '運輸方式',
    profit_amt       DOUBLE COMMENT '利潤金額',
    price            DOUBLE COMMENT '單價',
    shipping_cost    DOUBLE COMMENT '運輸成本',
    area             STRING COMMENT '區域',
    province         STRING COMMENT '省份',
    city             STRING COMMENT '城市',
    product_type     STRING COMMENT '產品類型',
    product_sub_type STRING COMMENT '產品小類',
    product_name     STRING COMMENT '產品名稱',
    product_box      STRING COMMENT '產品包箱',
    shipping_date    STRING COMMENT '運輸日期'
) 
COMMENT '銷售數據的明細信息'
PARTITIONED BY
(
    pt               STRING
)
LIFECYCLE 365;

創建目標輸出表

您需創建存放輸出結果的目標表,建表語句如下:

CREATE TABLE IF NOT EXISTS company_sales_top_n
( 
area STRING COMMENT '區域', 
city STRING COMMENT '城市', 
sales_amount DOUBLE COMMENT '銷售額', 
rank BIGINT COMMENT '排名'
)
COMMENT '公司銷售排行榜'
PARTITIONED BY (pt STRING COMMENT '')
LIFECYCLE 365;