我有一個每月處理資料并保存到 Hive/Impala 表中的 Spark 作業(檔案存盤格式為 parquet)。表的粒度是每日資料,但該作業的源資料也來自每月作業。
我正在嘗試查看如何最好地對表進行磁區。我正在考慮根據月份鍵對表進行磁區,如下面的資料框中所示。當需要重新運行時,例如重新運行 March 的作業將覆寫第 3 行和第 4 行。想知道是否有人發現這種方法有任何問題,或者有其他建議?謝謝。
--- ---------- -------------
| id| date_key|partition_key|
--- ---------- -------------
|100|20220105 |202201 |
|200|20220204 |202202 |
|300|20220301 |202203 |
|400|20220302 |203303 |
--- ---------- -------------
uj5u.com熱心網友回復:
你的方法是正確的。Hive, Impala and Parquet as a file format. 至于磁區,請記住worst您可以做的事情是too many partitions因為它們的元資料存盤在Hive Metastore (關系資料庫)中,如果您有大量磁區,任何元資料查詢都可能很繁重。
選擇 時partitioning key,請檢查每個磁區中將擁有多少資料。您需要選擇一個granulation,一方面將允許您,quickly access data另一方面您將沒有一個large number of small partitions(即具有少量資料)。
請查找有關以下內容的更多資訊Hive & Spark:
- https://bigdata-etl.com/articles/big-data/apache-spark/
- https://bigdata-etl.com/tag/hive/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462517.html
標籤:阿帕奇火花 Hadoop 蜂巢 apache-spark-sql
