查询引擎
Amazon Redshift Spectrum
登录后可跨设备保存划线和私人笔记登录
要在 Amazon Redshift 中读取 Apache XTable™ (Incubating) 同步的目标表(无论采用哪种表格式),用户必须创建外部架构,并引用包含该表的外部数据目录。Redshift 会直接从外部目录/数据库中推断表的架构和格式。有关创建外部架构的更多信息,请参阅 Redshift 文档。
Hudi 和 Iceberg 表
以下查询使用 Glue 数据库 glue_database_name 创建外部架构 xtable_synced_schema
sql
CREATE EXTERNAL SCHEMA xtable_synced_schema
FROM DATA CATALOG
DATABASE <glue_database_name>
IAM_ROLE 'arn:aws:iam::<accountId>:role/<roleName>'
CREATE EXTERNAL DATABASE IF NOT EXISTS;注意:
IAM 角色需要拥有对 Amazon S3 和 AWS Glue Data Catalog 的最小访问权限。有关更多信息,请参阅 AWS 文档。
Redshift 可以自动识别 Glue 数据库中已有的表。随后你可以使用以下语句查询这些表:
```sql
SELECT *
FROM xtable_synced_schema.<table_name>;Delta Lake 表
对于 Delta Lake,步骤略有不同,因为 Redshift Spectrum 依赖于 Delta Lake 的清单文件——这是一个文本文件,其中包含查询 Delta 表时需要读取的数据文件列表。
你有两种选择来在 Redshift Spectrum 中创建和查询 Delta 表:
- 按照此文章中的步骤,设置 Redshift Spectrum 到 Delta Lake 的集成,并直接从 Amazon S3 查询 Delta 表。
- 在创建用于爬取 Apache XTable™ (Incubating) 同步的 Delta 表的 Glue Crawler 时,在
Add data source弹出窗口中选择Create Symlink tables选项。这会在表的根路径下添加包含清单文件的_symlink_format_manifest文件夹。
随后,你可以使用类似的方法来查询上文提到的 Hudi 和 Iceberg 表。
sql
CREATE EXTERNAL SCHEMA xtable_synced_schema_delta
FROM DATA CATALOG
DATABASE <delta_glue_database_name>
IAM_ROLE 'arn:aws:iam::<accountId>:role/<roleName>'
CREATE EXTERNAL DATABASE IF NOT EXISTS;SQL
SELECT *
FROM xtable_synced_schema_delta.<table_name>;评论
登录后参与评论
正在加载评论…
KnowForge