真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

MaxCompute表設計規(guī)范有哪些-創(chuàng)新互聯

MaxCompute 表設計規(guī)范有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

10年積累的成都網站設計、成都網站建設、外貿網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有鎮(zhèn)平免費網站建設讓你可以放心的選擇與我們合作。
  • 表的限制項

  • 表(Table)設計規(guī)范 表設計主要目標

    • 分區(qū)字段和普通字段的選擇

    • 分區(qū)字段定義依據

    • 分區(qū)個數定義依據

    • 分區(qū)數量和數據量建議

    • 按數據分層規(guī)范數據生命周期

    • 按數據的變更和歷史規(guī)范數據的保存

    • 表設計的影響

    • 表設計步驟

    • 表數據存儲規(guī)范

    • 數據導入通道與表設計

    • 分區(qū)設計與邏輯存儲的對應

    • 表和分區(qū)設計基本規(guī)則

    • 分區(qū)設計

表的限制項

表(Table)設計規(guī)范 表設計主要目標

  • 降低存儲成本。 合適的表設計可以在數據分層設計上降低冗余存儲,減少中間表數據量大小。同時正 確的對表數據進行生命周期管理,更能夠直接降低存儲的數據量以降低存儲成本。

  • 降低計算成本。 對表設計規(guī)范化,以便在后續(xù)對表數據進行查詢計算過程中,可以依據這些規(guī)范優(yōu)化 數據的讀取,減少計算過程中的冗余讀寫和計算,提升計算性能的同時降低成本。

  • 降低維護復雜度。 規(guī)范化的表分層設計能夠直接體現業(yè)務的特點。如通過對數據通道中數據采集方式 進行優(yōu)化,同時對表進行規(guī)范化設計,可以減少分布式系統(tǒng)中小文件的問題,同時也減少表和分區(qū)維 護的數量等復雜度。

表設計的影響

影響的操作:表創(chuàng)建/入數據/表更新/表刪除/表管理。 導入數據場景(區(qū)分要做實時數據采集還是離線批 量數據寫入):

  • 導入即查詢與計算。

  • 多次導入,定時查詢與計算。

  • 導入后生成中間表進行計算。
    注意:

  • 合理的表設計和數據集成周期管理能夠使數據在存儲期間降低成本。 - MaxCompute優(yōu)先作為批量數據集成庫以及按業(yè)務邏輯進行計算,如按照分區(qū)進行計算。

  • 導入后立即查詢與計算,需要考慮每次導入數據量,減少流式小量數據導入。

  • 不合理的數據導入及存儲(小文件)會對整體存儲性能,計算性能,運維穩(wěn)定性造成影響。

表設計步驟

  1. 確定所屬項目空間,依據業(yè)務過程規(guī)劃表類型,屬于哪個數據層次。

  2. 定義表描述,權限定義與Owner定義。

  3. 依據數據量、數據集成特點定義分區(qū)表或者非分區(qū)表。

  4. 定義字段,或分區(qū)字段

  5. 表創(chuàng)建/表轉換

  6. 明確導入數據場景的相關因素(包括批量數據寫入/流式數據寫入/條式數據插入)。

  7. 定義表和分區(qū)數據生命周期。

注意:

  • 表創(chuàng)建之后可以依據業(yè)務變化進行表schema的修改,如設置生命周期,RangeClustering。

  • 在設計階段需要特別注意區(qū)分數據的場景(批量數據寫入/流式數據寫入/周期性條式數據插入)。

  • 合理使用非分區(qū)表和分區(qū)表。日志表,事實表,原始采集表等建議使用分區(qū)表,按照時間分區(qū)。

  • 注意各種表和分區(qū)的限制條件。

表數據存儲規(guī)范

按數據分層規(guī)范數據生命周期

  • 源表ODS層: 每天從業(yè)務系統(tǒng)同步過來的數據,全部保留,生命周期定義永久保存。以防備下游數據 受損時可以從ODS恢復。若ODS每天同步過來的是全量表,可以通過全表拉鏈的方式來壓縮存儲。

  • 數據倉庫(基礎)層: 至少保留一份完整的全量數據(不必像ODS那樣冗余多份全量)??紤]到性能 因素,可以考慮拆表或者做分區(qū)。

  • 數據集市層: 按需保留1~3年時?。數據集市的數據較容易生成,無需保留那么?時間的歷史數據

按數據的變更和歷史規(guī)范數據的保存

會變化數據怎么存:

  • 客戶屬性、產品屬性天天變,將這些屬性的歷史變化情況記錄下來,以方便追溯某個時點的值。

  • 在事實表里面冗余維表的字段,即把”事件發(fā)生時“的各種維度屬性值與該事件綁定起來。 比較方便使 用者,不需關聯多張表就可以用數據,在數據應用層使用。

  • 用拉鏈表或者日快照的形式,記錄維表的變化情況。 比較方便數據加工者,數據結構靈活,擴展方 便,容易管理,且數據一致性更好。在數據基礎層使用。

數據導入通道與表設計

通道類型:

  • Datahub ,規(guī)劃寫入的分區(qū)以及寫入流量的關系,做到64M commit一次。

  • 數據集成或DataX,規(guī)劃寫入的表分區(qū)的頻率,做到64M commit一次,避免commit空目錄。 DTS,規(guī)劃寫入的表存量分區(qū)與增量分區(qū)的關系,做commit頻率設置。

  • Console (Run SQL or Tunnel upload),避免高頻小數據量文件的插入或者上傳。

  • SDK Run Sql之insert into,對表或者分區(qū)上傳時需要注意插入到分區(qū)后進行小文件整理操作,避免 對一個分區(qū)或者非分區(qū)表插入多次,插入后需要merge。

注意:

  • MaxCompute導入數據的通道只有Tunnel SDK或者執(zhí)行SQL的Insert into,避免流式插入。

  • 以上各通道本身均有自身邏輯進行流式數據寫入, 批量數據寫入,周期調度寫入。

  • 數據通道寫表或分區(qū)時需要注意將一次寫入的數據量控制在合理的值如64M以上。

分區(qū)設計與邏輯存儲的對應

MaxCompute 表設計規(guī)范有哪些

如上圖,表一共m 個一級分區(qū),每個一級分區(qū)都會按時間存儲二級分區(qū),每個二級分區(qū)都會存儲所有的 列。 對分區(qū)進行設計的注意事項:

  • 分區(qū)限制數量上限。

  • 避免每個分區(qū)中只有少量數據。

  • 按照分區(qū)條件查詢和計算。

  • 避免每個分區(qū)中多次數據寫入。

表和分區(qū)設計基本規(guī)則

  • 所有的表、字段名要使用統(tǒng)一的命名規(guī)范。

    • 要能夠區(qū)分該表的業(yè)務類型。

    • 要能夠區(qū)分該表是“事實表”或“維度表”,“日志表”,“極限存儲表”(待發(fā)布功能)。

    • 要能夠區(qū)分該表的實體信息。

  • 不同表中具有相同業(yè)務含義的字段要定義統(tǒng)一的數據類型:

    • 避免不必要的類型轉換。

  • 分區(qū)設計及使用一般規(guī)則:

    • 支持新增分區(qū),不支持新增分區(qū)字段。

    • 單表支持分區(qū)數量為6萬。

    • 對于多級分區(qū)的表,如果想添加新的分區(qū),必須指明全部的分區(qū)值。

    • 不支持修改分區(qū)列列名,只能修改分區(qū)列對應的值。修改多級分區(qū)的一個或者多個分區(qū)值,多級 分區(qū)的每一級的分區(qū)值都必須寫上。

分區(qū)設計

分區(qū)字段和普通字段的選擇

分區(qū)字段的作用:

  • 方便數據的管理 。

  • 劃分數據掃描范圍。
    創(chuàng)建表的時候,可以設置普通字段和分區(qū)字段。在絕大多數情況下,可以把普通字段理解成數據文件的數 據,而分區(qū)字段可以理解成文件系統(tǒng)的目錄。表的存儲空間的占用是普通字段的空間占用。 分區(qū)列雖然不直接存儲數據,但是如同文件系統(tǒng)里的目錄,方便數據管理,同時在計算時若指定具體的分 區(qū),計算過程中只查詢對應分區(qū),從而減少計算輸入量。 分區(qū)表的分區(qū)列的個數不能超過6級,也可以理解成底層存儲數據的目錄層數不能超過6層。對分區(qū)表設置 合適的生命周期,可以按照分區(qū)細粒度做到對部分數據進行周期管理。

注意:

  • 可以從數據管理范圍和常用的數據掃描范圍考慮將對應字段設置成分區(qū)字段。

  • 對于不具備規(guī)律或者類型數量大于10000且不經常作為查詢條件的字段設置成普通字段。

分區(qū)字段定義依據

按優(yōu)先級高低排序:

  • 區(qū)列的選擇應充分考慮時間因素,盡量避免對于存量分區(qū)進行更新。

  • 如果有多個事實表(不包括維度表)進行join,查詢條件where范圍的列作為分區(qū)列。 選

  • 擇group by 或distinct 包含的列作為分區(qū)列。

  • 選擇值分布均勻的列,不要選擇分區(qū)傾斜的列作為分區(qū)列。

  • 常用SQL包含某列的等值或in查詢條件,選擇該列作為分區(qū)列。

例如:

Select ... from table where id=123 and ....;

分區(qū)個數定義依據

  • 時間分區(qū):可按天進行分區(qū)或者按月進行分區(qū),如按照小時進行分區(qū),二級分區(qū)平均數量不應大于8 個。

  • 地域分區(qū):省,市,縣進行分區(qū),考慮進行多級分區(qū)。23個省,5個自治區(qū),4個直轄市,2個特別行 政區(qū);50個地區(qū)(州、盟);661個市,其中:直轄市4個;地級市283個;縣級市374個;1636個縣(自治縣、旗、自治旗、特區(qū)和林區(qū)),按照最細粒度縣級進行分區(qū)后更細粒度不應再按照小時進行 分區(qū)。

  • 單分區(qū)下的數據建議64M數據提交一次。如果為多級分區(qū),保證每個最細粒度級分區(qū)下的二級分區(qū)的 數據都是按照這個規(guī)則。

  • 單表分區(qū)數(包括下級分區(qū))不能超過6萬。

分區(qū)數量和數據量建議

在計算的時候可以使用分區(qū)裁剪是分區(qū)的優(yōu)勢。

  • 建議單個分區(qū)中數據量不要太大,如可以單個分區(qū)中數據在1萬條,但是建了5萬個分區(qū)。

  • 應盡量避免分區(qū)數據傾斜,單個表不同分區(qū)的數據量差異查過100萬以上。

  • 做分區(qū)設計時應合理規(guī)劃分區(qū)個數,較細粒度的分區(qū)在跨分區(qū)掃描時會影響到SQL的執(zhí)行性能。

  • 單個分區(qū)中數據量較大的情況下,MaxCompute執(zhí)行任務時會做分片處理不影響分區(qū)裁剪的優(yōu)勢。

  • 單個分區(qū)中文件數較多時,會影響MaxComputeInstance數量,造成資源浪費和SQL性能的影響。

  • 采用多級分區(qū),先按日期分區(qū),然后按交易類型分區(qū)。

  • 拆表,一種交易類型就獨立成一張表,再每張表按日期分區(qū)。

  • 維度表不做分區(qū)。

看完上述內容,你們掌握MaxCompute 表設計規(guī)范有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯-成都網站建設公司行業(yè)資訊頻道,感謝各位的閱讀!


網站題目:MaxCompute表設計規(guī)范有哪些-創(chuàng)新互聯
分享鏈接:http://weahome.cn/article/dgdphc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部