サードパーティエンジンを使用してSnowflake Open Catalogのテーブルをクエリする¶
このトピックでは、サードパーティのクエリエンジンを使用してSnowflakeオープンカタログのテーブルにクエリする手順を説明します。
前提条件¶
オープンカタログでテーブルにクエリを実行する前に、以下を実行する必要があります。
Snowflake が管理する Apache Iceberg™ テーブルへのクエリに関する考慮事項¶
Snowflakeを使用し、Snowflakeで管理されたIcebergテーブルをOpen Catalogに同期する場合、Open Catalogでテーブルをクエリする際に以下の点に注意してください。
引用符で囲まれていない識別子:Snowflake でデータベース、スキーマ、または Iceberg テーブルを作成し、 それを二重引用符で囲むこと なく、の文字を含む名前を付けた場合、Open Catalog でその名前をリファレンスするときは、すべて大文字で指定する必要があります。たとえば、
iceberg_tables.public.table1
が Snowflake での名前である場合、オープンカタログではICEBERG_TABLES.PUBLIC.TABLE1
を使用します。二重引用符で囲まれた識別子:Snowflakeでオブジェクト名を二重引用符で囲んで作成した場合、オープンカタログのクエリでそのオブジェクトを参照するときは、次のようにする必要があります。
オブジェクト名をバッククォートで囲みます。
異なる文字としてレンダリングされた場合は、その文字をアカウントに含めるため、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()