使用第三方引擎在 Snowflake Open Catalog 中查询表

本主题提供了使用第三方查询引擎查询 Snowflake Open Catalog 中表的说明。

先决条件

在 Open Catalog 中查询表之前,您必须执行以下操作:

查询 Snowflake 管理的 Apache Iceberg™ 表的注意事项

如果您使用 Snowflake 并将 Snowflake 管理的 Iceberg 表同步到 Open Catalog,请注意在 Open Catalog 中查询该表时的以下注意事项:

  • 未引用的标识符:如果您在 Snowflake 中创建数据库、架构或 Iceberg 表,并给它一个包含字母的名称,而不 将名称放在双引号内,则在 Open Catalog 中引用时必须以大写字母指定该名称。例如,如果 iceberg_tables.public.table1 是 Snowflake 中的名称,请在 Open Catalog 中使用 ICEBERG_TABLES.PUBLIC.TABLE1

  • 双引号标识符:如果您在 Snowflake 中创建一个带有双引号名称的对象,在 Open Catalog 中引用该对象时,您必须执行以下操作:

    • 将对象名称放在反引号内。

    • 请准确指定对象名称,如在 Open Catalog 中所示,以考虑任何在适用时呈现为不同字符的字符。

    以下示例显示了 My 'Identifier' Snowflake 标识符,该标识符是用双引号创建的,在 Open Catalog 中被引用。

      spark.sql ("select * from `My+'Identifier'`.PUBLIC.TABLE1").show()
    
    Copy

    Open Catalog 将双引号 Snowflake 标识符中的空格字符呈现为 +

示例:查询表

以下示例代码展示了如何使用 Apache Spark 查询目录 catalog1 中的 customers 表。customers 表位于 namespace1a 下,该命名空间嵌套在顶级命名空间 namespace1 下:

spark.sql("use catalog1").show()
spark.sql("use namespace1.namespace1a").show()
spark.sql("SELECT * FROM customers").show()
Copy
语言: 中文