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

Hologres開發規范

本文將為您介紹,Hologres在開發過程中的相關規范,幫助您快速了解Hologres的開發要求,避免進行錯誤的操作。

數據域規范

  • 數倉分層

    數據倉庫以分層建設為主包含如下幾類分層,其中CDM包含DWD、DWS、DIM。在Hologres中通過Schema隔離不同的分層。

    • ODS(Operational Data Store):操作數據層

    • CDM(Common Data Model):公共維度模型層

      • DWD(Data Warehouse Detail):明細數據層

      • DWS(Data Warehouse Summary):匯總數據層

      • DIM(Dimension):維度數據層

    • ADS(Application Data Service):應用數據層

    不同公司可根據業務的復雜程度選擇適當的顆粒度,如一個公司存在多個BU(Business Unit),則以BU縮寫作為Schema的前綴。

    create schema ${bu}_ads;
    create schema ${bu}_ads_dev;
    create schema ${bu}_dwd;
    create schema ${bu}_dwd_dev;
    create schema ${bu}_dws;
    create schema ${bu}_dws_dev;
    create schema ${bu}_dim;
    create schema ${bu}_dim_dev;
    create schema ${bu}_ods;
    create schema ${bu}_ods_dev;
  • 數據域縮寫

    不同的數據域需要定義共享的數據域代碼,形成公司共識規范。示例如下。

    數據域的名稱

    數據域對應的縮寫示例

    交易域

    trd

    商品域

    itm

    日志域

    log

    會員和店鋪域

    mbr

    供銷存管理域

    dst

    銷售和客服域

    crm

    信用和風控域

    rsk

    工具和服務域

    tls

    物流和快遞域

    lgt

命名規范

  • 任務命名規范

    任務命令時要區分內部任務還是同步任務,命名規則如下。

    • 內部SQL任務(非同步任務):holo_{target_table_name} (與外部表任務區分)。

    • 數據導入Hologres:{source}2holo_{target_table_name}

    • Hologres數據導出:holo2{target}_{target_table_name}

  • 表命名規范

    分層名稱

    當前分層中表的命名規則

    示例

    DWD

    ${bu}_dwd.數據域_業務過程_[自定義詞根]_后綴

    taobao_dwd.trd_ord_flow

    DWS

    ${bu}_dws.數據域_數據粒度縮寫_業務過程_[{自定義詞根}]_統計時間周期

    taobao_dws.trd_all_dtr,taobao_dws.log_slr_pv_dtr

    DIM

    ${bu}_dim.{維度定義}[_{自定義詞根}]

    taobao_cdm.dim_itm

    ADS

    ${bu}_ads.業務域_維度_[{自定義詞根}]_{刷新周期標識}

    說明

    刷新周期標識如下。

    • d:按天刷新。

    • r:實時刷新。

    • h:準實時刷新。

    taobao_ads.trd_cate_d

  • Table Group命名規范

    若是業務需要創建多個Table Group,命名可以采取${bu}_{數倉分層名}_{業務定義}_tg的規范。

  • 視圖命名規范

    持久化視圖命名規則與示例如下。

    • 規則

      • DWS:${bu}_dws.數據域_數據粒度縮寫_業務過程_[{自定義詞根}]_統計時間周期_v

      • ADS:${bu}_ads.業務域_維度_[{自定義詞根}]_{刷新周期標識}_v

    • 示例

      taobao_dws.trd_byr_itm_ord_cm_v
  • 外表命名規范

    在原有MaxCompute表名基礎下加ext后綴,具體示例如下。

    taobao_dim.camp_ext
  • 臨時表命名規范

    在原有表名基礎下加tmp前綴及數字序號后綴,具體示例如下。

    taobao_dim.tmp_camp_01
  • 常用縮寫詞

    統計周期

    縮寫

    最近一天

    1d

    最近多天

    nd

    累計

    td

    自然周

    cw

    自然月

    cm

    截止當前累計

    dtr

    截止當前小時累計

    dhr

表開發規范

  • 內表規范

    創建表之前必須按照數據模型規范確定表和字段的命名,并根據需求確認表的生命周期,為表和字段添加完整注釋,相關規范如下。

    • 強控規范(如不符合則不允許發布):

      • 輸出的表與字段需包含Comment,適用于全平臺數據研發操作場景,表的Comment應確保描述信息簡練、清晰。

      • 建表語句中需包含有表的生命周期(time_to_live_in_seconds)。

      • 建表語句需帶有分布鍵索引(distribute_key),分布鍵選擇原則如下。

        足夠分散、最常JOIN或者GROUP BY的字段。例如買家商品表,可以設置user_iditem_id,但如果常關聯的KEY為user_id,則分布鍵設置user_id而非user_iditem_id

      • 進行關聯查詢的表需要創建在同一個Table Group中。

      • 同一個實體ID,在所有事實表和維表中保持名稱和數據類型一致,比如交易表中用戶ID為user_id,在維表中也為user_id,而不能是uid,同時數據類型保持一致,減少數據類型的轉換。

      • 所有物理表的分區字段默認使用ds表示。

    • 建議規范:

      • 建表語句應當帶有bitmap_columnssegment_keycluster_key任意之一。

      • 在不明確字段基數情況下,不建議設置建表屬性dictionary_encoding_columns(字典索引),您可調用如下內容將屬性置空。

        call set_table_property('table_name', 'dictionary_encoding_columns','')
      • 建表屬性orientation(數據存儲格式)建議使用column,可以設置為row

        說明

        除非明確該表的查詢能夠始終指定所有的primary key(等于或者in),否則盡量不要使用row,不設置時默認是用column存儲。

      • 建表屬性bitmap_columns(比特編碼),bitmap可以對存儲文件內部的數據進行快速過濾。

        • 建議把filter條件的數據建成bitmap_columns,默認情況下會將所有的TEXT字段設置。

        • 不建議枚舉值過多的字段,比如user_id,建議活動ID這類指標設置為bitmap_columns

      • 建表屬性event_time_column需用在與實時寫入有關的字段上,例如事件時間戳。

      • 建表屬性clustering_key聚簇索引,Hologres會在聚簇索引上對數據進行排序,建立聚簇索引能夠加速在索引列上的rangefilter查詢,僅能設置一組。對于范圍過濾適用,比如gmv分檔時。

  • MaxCompute外表規范

    Hologres支持通過外表對MaxCompute進行加速查詢,可簡化數據同步的流程。為了提升計算性能,非必要場景不建議您使用內表與外表關聯。為更好地管理和維護外表,請遵循如下規范。

    • 強控規范:您需嚴格按照外表命名規范,在原有的MaxCompute表名基礎下增加ext后綴。

    • 建議規范:

      • 保留外表的DDL,做好版本之間的管理。

      • 不建議內表與外表關聯使用,建議采用外表同步至內表的方式。

  • 視圖規范

    • 強控規范:您需嚴格按照視圖命名規范。

    • 建議規范:

      • 建議您開啟任務調度,保障后續開發作業依賴鏈路完整。

      • 建議不同粒度的視圖單獨創建,避免綜合請求計算量過大。

        例如,cw、cm、nd、1d等,可分別建立4個視圖。如存在分端,則建立pc、wap、app。如分采集方式,可以分ut和非ut。

  • 生命周期(僅限內表)規范

    數倉分層

    對應的生命周期規則描述

    DWD

    天級增量明細,建議不超過2年。

    DWS

    天級增量明細,建議不超過2年。

    DIM

    大維表建議進行極限存儲建模后永久保存,小維表與MaxCompute表保持一致。

    大、小維表的界定標準:單分區不可超過1 TB。

    建議規范:

    若是有分區表,建議按照實時任務寫入當天分區,并且按照數倉分層設置合適的TTL,且更新的歷史數據不應該寫入已經超過TTL設置的分區。

  • Table Group規范(可選)

    每個數據庫都會有默認的Table Group和Shard數,您可以根據業務需要新建Table Group或者修改Shard數,以此達到更好的性能,建議規范如下。

    • 如無必要不要新建Table Group。

    • 數據量較大的表,可獨立新建Shard數較大的Table Group。

    • 有大量數據量較小的表,可適當創建一個Shard數較小的Table Group。

    • 需要Join關聯查詢的表,必須放在同一個Table Group。

字段開發規范

  • 字段類型規范

    字段類型需嚴格按照如下要求進行創建。

    字段/字段后綴

    字段注釋

    示例

    縮寫

    user_id

    自增會員ID

    user_id=232442843

    int8

    item_id

    商品ID

    item_id=63283278784383

    int8

    member_id

    注冊會員ID

    member_id=b2b-dsajk2343821b

    TEXT

    *amt*

    金額類

    pay_ord_amt_1d_001=923.23

    NUMERIC

    *fee*

    費用類

    post_fee=923.23

    NUMERIC

    *cnt*

    數量類

    pay_ord_byr_cnt_1d_001=923

    int4/int8

    is_*

    是否類

    is_pm=Y/is_pm=true

    TEXT/BOOL

    ds

    分區

    ds=20210120

    YYYYMMDD

  • 基本數據類型參考

    目前,Hologres數據類型與PostgreSQL數據類型兼容,但支持的數據類型是PostgreSQL的一個子集。詳細字段類型及MaxCompute映射,請參見數據類型匯總

  • 貨幣單位及精度

    中國內地地域貨幣單位統一為人民幣,其他地域貨幣單位統一為美元。除非模型有特殊說明,否則金額相關的數據不做任何四舍五入操作,以免后續匯總計算中造成不同口徑的匯總結果不一致。

SQL規范

  • 強控規范:

    • SQL最外層及子查詢內層不需要計算的字段禁止使用select *操作,所有操作必須明確指定列名。

    • Where條件中空字段和空字符串要進行必要的Coalesce處理。

  • 建議規范:

    • 常采用count distinct字段作為distribution_key,對于多個count distinct的組合需要手動的改寫。

      select count(distinct userid)
           , count(distinct case when stat_date = '20201111' then userid end) 
      from t group by cate_id;
      
      --改寫為如下
      select count(1), sum(c) from 
      (
        select userid
             , cate_id
             , cast(count(case when stat_date = '20201111' then 1 end) > 0) as c 
        from t 
        group by cate_id, userid
      ) t1 
      group by cate_id;
    • 離線調度任務增加analyze table操作分區表。

    • 針對長周期使用場景,批操作時采用ATTACH/DETACH操作歷史分區,避免數據指標大起大落。