本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
同步處理三角洲湖元
Athena 會將資料表中繼資料 (包括結構定義、分割區資料欄和表格屬性) 同步至 AWS Glue 如果您使用 Athena 創建您的三角洲湖表。隨著時間流逝,此中繼資料可能會遺失與交易日誌中基礎資料表中繼資料的同步處理。要讓資料表保持最新,您可以選擇下列其中一個選項:
-
使用 AWS Glue 三角洲湖表的爬蟲。如需詳細資訊,請參閱使用介紹原生 Delta Lake 表格支援 AWS Glue
中的爬行者 AWS 大數據部落格與排程 AWS Glue 爬行者在 AWS Glue 開發人員指南。 -
在 Athena 捨棄並重新建立資料表。
-
使用SDKCLI、或 AWS Glue 用於手動更新架構的主控台 AWS Glue.
請注意,以下功能需要 AWS Glue 結構描述始終具有與交易記錄檔相同的結構描述:
-
Lake Formation
-
檢視
-
資料列與資料欄篩選
如果您的工作流程不需要任何此功能,而且您不想維持此相容性,則可以CREATE TABLE
DDL在 Athena 中使用,然後新增 Amazon S3 路徑做為 SerDe 參數 AWS Glue.
您可以使用下列程序建立具有 Athena 和 AWS Glue 控制台。
若要使用 Athena 和建立三角洲湖表 AWS Glue 遊戲機
在 https://console.aws.amazon.com/athena/
中開啟 Athena 主控台。 -
在 Athena 查詢編輯器中,使用下列指令DDL建立您的三角洲湖資料表。請注意,使用此方法時,
TBLPROPERTIES
的值必須是'spark.sql.sources.provider' = 'delta'
而不是'table_type' = 'delta'
。請注意,當您使用 Apache Spark (Athena for Apache Spark) 或大多數其他引擎來建立資料表時,將插入此相同的結構描述 (具有名為
col
的類型array<string>
的單一資料欄)。CREATE EXTERNAL TABLE [db_name.]table_name(col array<string>) LOCATION 's3://amzn-s3-demo-bucket/
your-folder
/' TBLPROPERTIES ('spark.sql.sources.provider' = 'delta') 打開 AWS Glue 控制台位於https://console.aws.amazon.com/glue/
。 -
在導覽窗格中,選擇資料目錄、資料表。
-
在資料表清單中,選擇資料表的連結。
-
在資料表的頁面上,選擇動作、編輯資料表。
-
在 Serde 參數區段中,新增索引鍵
path
與值s3://amzn-s3-demo-bucket/
。your-folder
/ -
選擇 Save (儲存)。
若要使用建立三角洲湖表 AWS CLI」中,輸入如下所示的指令。
aws glue create-table --database-name dbname \ --table-input '{"Name" : "tablename", "StorageDescriptor":{ "Columns" : [ { "Name": "col", "Type": "array<string>" } ], "Location" : "s3://
amzn-s3-demo-bucket
/<prefix>
/", "SerdeInfo" : { "Parameters" : { "serialization.format" : "1", "path" : "s3://amzn-s3-demo-bucket
/<prefix>
/" } } }, "PartitionKeys": [], "TableType": "EXTERNAL_TABLE", "Parameters": { "EXTERNAL": "TRUE", "spark.sql.sources.provider": "delta" } }'