使用第三方引擎在 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()
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()