同步 Delta Lake 元数据 - Amazon Athena

同步 Delta Lake 元数据

如果您使用 Athena 创建 Delta Lake 表,Athena 会将表元数据(包括架构、分区列和表属性)同步到 AWS Glue。随着时间推移,该元数据可能会中断与事务日志中基础表元数据的同步。要让表保持最新状态,您可以选择以下选项之一:

请注意:以下功能要求您的 AWS Glue 架构始终具有与事务日志相同的架构:

  • Lake Formation

  • 视图

  • 行和列筛选器

如果您的工作流程不需要任何此功能,并且您不希望保持这种兼容性,则可以在 Athena 中使用 CREATE TABLE DDL,然后将 Amazon S3 路径作为 SerDe 参数添加到 AWS Glue 中。

使用 Athena 和 AWS Glue 控制台创建 Delta Lake 表
  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

  2. 在 Athena 查询编辑器中,使用以下 DDL 创建您的 Delta Lake 表。请注意:使用此方法时,TBLPROPERTIES 的值必须为 'spark.sql.sources.provider' = 'delta',而不是 'table_type' = 'delta'

    请注意:当您使用 Apache Spark(Athena for Apache Spark)或大多数其他引擎创建表时,会插入相同的架构(其中包含一个名为 colarray<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')
  3. 通过 https://console.aws.amazon.com/glue/ 打开 AWS Glue 控制台。

  4. 在导航窗格中,选择数据目录

  5. 在表的列表中,选择表的链接。

  6. 在表格页面上,选择操作编辑表格

  7. Serde 参数部分,添加带有值 s3://amzn-s3-demo-bucket/your-folder/ 的键 path

  8. 选择保存