AIDP ノートブック(データ分析専用のノート形式)から、AIDP の `aidataplatform` Spark形式ハンドラー(データ形式の変換ツール)を通じて Snowflake(クラウド型データベース)を読み込みます。 **次のような場合に使用:** - ユーザーが Snowflake、Snowflake ウェアハウス、基本認証、KeyPair 認証、private.key.file、または private.key.content について言及した場合 ※ Snowflake への書き込みは AIDP 4.0 ではサポートされていません。
Read Snowflake from an AIDP notebook through the AIDP `aidataplatform` Spark format handler. Use when the user mentions Snowflake, Snowflake warehouse, Basic authentication, KeyPair authentication, private.key.file, or private.key.content. Snowflake writes are not supported in AIDP 4.0.
aidp-snowflake — AIDP経由でSnowflakeを読み取るAIDP(AIデータプラットフォーム)の組み込みSnowflakeコネクタ(type=SNOWFLAKE)を使用します。基本認証とキーペア認証(複数の暗号化鍵を使った認証方式)、直接読み込み、外部カタログ読み込み、SQL押し下げ(データベース側での処理)に対応しています。4.0リリースではSnowflakeへの書き込みコードを生成しないでください。
aidp-jdbc-customを参照import os
from oracle_ai_data_platform_connectors.aidataplatform import (
AIDP_FORMAT, aidataplatform_options,
)
opts = aidataplatform_options(
type="SNOWFLAKE",
host=os.environ["SNOWFLAKE_HOST"],
port=443,
database_name=os.environ["SNOWFLAKE_DATABASE"],
user=os.environ["SNOWFLAKE_USER"],
password=os.environ["SNOWFLAKE_PASSWORD"],
schema=os.environ["SNOWFLAKE_SCHEMA"],
table=os.environ["SNOWFLAKE_TABLE"],
extra={
"authentication.method": "Basic",
"warehouse": os.environ["SNOWFLAKE_WAREHOUSE"],
"role": os.environ.get("SNOWFLAKE_ROLE", ""),
},
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(5)
private.key.fileまたはprivate.key.contentのいずれかを設定します。暗号化されたキーの場合のみprivate.key.pass.phraseを使用してください。
opts = aidataplatform_options(
type="SNOWFLAKE",
host=os.environ["SNOWFLAKE_HOST"],
port=443,
database_name=os.environ["SNOWFLAKE_DATABASE"],
user=os.environ["SNOWFLAKE_USER"],
schema=os.environ["SNOWFLAKE_SCHEMA"],
table=os.environ["SNOWFLAKE_TABLE"],
extra={
"authentication.method": "KeyPair",
"warehouse": os.environ["SNOWFLAKE_WAREHOUSE"],
"role": os.environ.get("SNOWFLAKE_ROLE", ""),
"private.key.file": os.environ["SNOWFLAKE_PRIVATE_KEY_FILE"],
"private.key.pass.phrase": os.environ.get("SNOWFLAKE_PRIVATE_KEY_PASSPHRASE", ""),
},
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(5)
キーをインラインで指定する場合は、private.key.fileをprivate.key.contentに置き換えてください。ノートブックに秘密鍵をハードコードしないでください。
最初にマスターカタログにSnowflake外部カタログを作成します。その後、3つの部分からなるテーブル名を使用するか、catalog.idでその接続を再利用できます。
catalog_df = spark.table("<CATALOG_NAME>.<SCHEMA>.<TABLE_NAME>")
catalog_df.show(5)
catalog_id_df = (spark.read.format(AIDP_FORMAT)
.option("catalog.id", "<CATALOG_ID>")
.option("schema", "<SCHEMA>")
.option("table", "<TABLE_NAME>")
.load())
catalog_id_df.show(5)
pushdown.sqlを使用してSnowflake側でクエリを実行します。
pushdown_df = (spark.read.format(AIDP_FORMAT)
.options(**opts)
.option("pushdown.sql", "SELECT * FROM <SCHEMA>.<TABLE_NAME> LIMIT 10")
.load())
pushdown_df.show(5)
df.write、saveAsTable、insertInto、write.modeを使用しないでください。BasicまたはKeyPairを使用してください。warehouseを設定してください。roleはオプションです。aidp-snowflake — read Snowflake via AIDP aidataplatformUse the built-in AIDP Snowflake connector (type=SNOWFLAKE). It supports Basic and KeyPair authentication, direct ingestion reads, external-catalog reads, and SQL pushdown. Do not generate write code for Snowflake in the 4.0 release.
aidp-jdbc-custom.import os
from oracle_ai_data_platform_connectors.aidataplatform import (
AIDP_FORMAT, aidataplatform_options,
)
opts = aidataplatform_options(
type="SNOWFLAKE",
host=os.environ["SNOWFLAKE_HOST"],
port=443,
database_name=os.environ["SNOWFLAKE_DATABASE"],
user=os.environ["SNOWFLAKE_USER"],
password=os.environ["SNOWFLAKE_PASSWORD"],
schema=os.environ["SNOWFLAKE_SCHEMA"],
table=os.environ["SNOWFLAKE_TABLE"],
extra={
"authentication.method": "Basic",
"warehouse": os.environ["SNOWFLAKE_WAREHOUSE"],
"role": os.environ.get("SNOWFLAKE_ROLE", ""),
},
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(5)
Set one of private.key.file or private.key.content. Use private.key.pass.phrase only for an encrypted key.
opts = aidataplatform_options(
type="SNOWFLAKE",
host=os.environ["SNOWFLAKE_HOST"],
port=443,
database_name=os.environ["SNOWFLAKE_DATABASE"],
user=os.environ["SNOWFLAKE_USER"],
schema=os.environ["SNOWFLAKE_SCHEMA"],
table=os.environ["SNOWFLAKE_TABLE"],
extra={
"authentication.method": "KeyPair",
"warehouse": os.environ["SNOWFLAKE_WAREHOUSE"],
"role": os.environ.get("SNOWFLAKE_ROLE", ""),
"private.key.file": os.environ["SNOWFLAKE_PRIVATE_KEY_FILE"],
"private.key.pass.phrase": os.environ.get("SNOWFLAKE_PRIVATE_KEY_PASSPHRASE", ""),
},
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(5)
To supply the key inline, replace private.key.file with private.key.content; never hard-code a private key in a notebook.
Create the Snowflake external catalog in Master Catalogs first. You can then use a three-part table name or reuse its connection with catalog.id.
catalog_df = spark.table("<CATALOG_NAME>.<SCHEMA>.<TABLE_NAME>")
catalog_df.show(5)
catalog_id_df = (spark.read.format(AIDP_FORMAT)
.option("catalog.id", "<CATALOG_ID>")
.option("schema", "<SCHEMA>")
.option("table", "<TABLE_NAME>")
.load())
catalog_id_df.show(5)
Use pushdown.sql to execute a source query in Snowflake.
pushdown_df = (spark.read.format(AIDP_FORMAT)
.options(**opts)
.option("pushdown.sql", "SELECT * FROM <SCHEMA>.<TABLE_NAME> LIMIT 10")
.load())
pushdown_df.show(5)
df.write, saveAsTable, insertInto, or write.mode with Snowflake.Basic or KeyPair.warehouse for both authentication modes; role is optional.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。