メインコンテンツまでスキップ

サーバレス バンドルコネクタの書き込みオプション

注記

サーバレスコンピュート上のバンドルされたSparkコネクタを使用した外部データソースへの書き込みは、パブリックプレビューで利用可能です。

サーバレスコンピュートでバンドルされたコネクタを使用して外部データソースに書き込む際、コネクタオプションのサブセットのみがサポートされています。次の表に、コネクタごとのサポートされているオプションが記載されています。

セットアップ手順と例については、 「Sparkデータソース」を参照してください。

PostgreSQL

次のオプションは、サーバレス コンピュートで PostgreSQL に書き込む際にサポートされています。

オプション

説明

host

PostgreSQLサーバーのホスト名。

port

ポート番号。デフォルト:5432

database

接続先データベース名

connectTimeout

接続を待機する最大時間(秒)。0はタイムアウトを無効にします。

user

データベースユーザー名。

password

データベースのパスワード。

dbtable

ターゲットテーブル名。スキーマ修飾名に対応しています(例えば、myschema.mytable)。

batchsize

バッチごとに挿入する行数。デフォルト:1000

numPartitions

並列書き込み操作に使用するSparkパーティションの数。

queryTimeout

クエリー完了までの最大待機時間 (秒)0はタイムアウトを無効にします。

isolationLevel

トランザクション分離レベル:NONEREAD_COMMITTEDREAD_UNCOMMITTEDREPEATABLE_READ、または SERIALIZABLE。デフォルトはREAD_UNCOMMITTEDです。

truncate

true の場合、削除して再作成する代わりに、overwrite モードでターゲットテーブルを切り捨てます。デフォルトはfalseです。

cascadeTruncate

trueの場合、ターゲットテーブルに外部キー参照を持つテーブルに切り詰めをカスケードします。デフォルトはfalseです。

SQL Server

サーバーレスコンピュート環境でSQL Serverに書き込む場合、以下のオプションがサポートされます。

オプション

説明

host

SQL Serverインスタンスのホスト名。

port

ポート番号。デフォルト:1433

database

接続先データベース名

connectionTimeout

接続を待機する最大時間(秒)。0はタイムアウトを無効にします。

encrypt

true の場合、クライアントとサーバー間で送信されるすべてのデータを TLS を使用して暗号化します。デフォルトはfalseです。

trustServerCertificate

trueの場合、検証せずにサーバーのTLS証明書を信頼します。開発環境専用です。デフォルトはfalseです。

debug

true の場合、コネクタの詳細なデバッグログを有効にします。デフォルトはfalseです。

user

データベースユーザー名。

password

データベースのパスワード。

authentication

認証タイプ。サポートされている値: SqlPasswordActiveDirectoryPasswordActiveDirectoryMSI

dbtable

ターゲットテーブル名。スキーマ修飾名に対応しています(例えば、myschema.mytable)。

batchsize

バッチごとに挿入する行数。デフォルト:1000

numPartitions

並列書き込み操作に使用するSparkパーティションの数。

queryTimeout

クエリー完了までの最大待機時間 (秒)0はタイムアウトを無効にします。

isolationLevel

トランザクション分離レベル:NONEREAD_COMMITTEDREAD_UNCOMMITTEDREPEATABLE_READ、または SERIALIZABLE。デフォルトはREAD_UNCOMMITTEDです。

truncate

true の場合、削除して再作成する代わりに、overwrite モードでターゲットテーブルを切り捨てます。デフォルトはfalseです。

MySQL

サーバレスコンピュート上のMySQLに書き込む場合、以下のオプションがサポートされています。

オプション

説明

host

MySQLサーバーのホスト名。

port

ポート番号。デフォルト:3306

database

接続先データベース名

connectionTimeout

接続を待機する最大時間(秒)。0はタイムアウトを無効にします。

requireSSL

trueの場合、サーバーへのSSL暗号化接続が必要です。デフォルトはfalseです。

useSSL

trueの場合、サーバーでサポートされている場合は、接続で SSL を有効にします。デフォルトはfalseです。

user

データベースユーザー名。

password

データベースのパスワード。

dbtable

ターゲットテーブル名。スキーマ修飾名に対応しています(例えば、myschema.mytable)。

batchsize

バッチごとに挿入する行数。デフォルト:1000

numPartitions

並列書き込み操作に使用するSparkパーティションの数。

queryTimeout

クエリー完了までの最大待機時間 (秒)0はタイムアウトを無効にします。

isolationLevel

トランザクション分離レベル:NONEREAD_COMMITTEDREAD_UNCOMMITTEDREPEATABLE_READ、または SERIALIZABLE。デフォルトはREAD_UNCOMMITTEDです。

truncate

true の場合、削除して再作成する代わりに、overwrite モードでターゲットテーブルを切り捨てます。デフォルトはfalseです。

cascadeTruncate

trueの場合、ターゲットテーブルに外部キー参照を持つテーブルに切り詰めをカスケードします。デフォルトはfalseです。

Snowflake

以下のセクションでは、Snowflakeコネクタのサポートされているオプションを機能別に整理して記載しています。

接続

以下のオプションは、Snowflakeへの接続を構成し、セッションの動作を制御します。

オプション

説明

host

Snowflake アカウント ホスト名(例えば、<account>.snowflakecomputing.com)。

port

ポート番号。デフォルト:443

sfaccount

Snowflake アカウント識別子。

sfauthenticator

認証方法: snowflake(パスワード)、oauth(トークン)、またはsnowflake_jwt(キーペア)デフォルト: snowflake

networktimeout

ネットワーク操作のタイムアウト(秒)。

sftimezone

タイムスタンプ操作のタイムゾーン(たとえば、America/New_Yorkなどです)。

client_session_keep_alive

もしtrueの場合、長期にわたるオペレーション中にセッションタイムアウトを防ぐためにキープアライブ信号が送信されます。デフォルトはfalseです。

ocspfailopen

trueの場合、OCSP証明書の検証が利用できないときに接続の続行を許可します(フェイルオープンモード)。デフォルトはtrueです。

認証

以下のオプションでは、sfauthenticatorで設定されている認証方法の資格情報を提供します。Snowflakeステージがクラウドストレージ経由でデータを書き込む際には、ステージング認証情報(temporary_aws_*awsaccesskeytemporary_azure_sas_token)が必要です。

オプション

説明

sfuser

Snowflake のユーザー名です。

sfpassword

Snowflake パスワード。sfauthenticatorsnowflakeの場合に使用されます。

sfToken

OAuthアクセストークン。sfauthenticatoroauthの場合に使用されます。

pem_private_key

キーペア認証用のPEM形式のプライベートキー。sfauthenticatorsnowflake_jwtの場合に使用されます。

temporary_aws_access_key_id

一時的なS3ステージング用AWSアクセスキーID。有効期間の短い資格情報を使用する場合、awsaccesskeyよりも推奨されます。

temporary_aws_secret_access_key

S3ステージング用の一時的なAWSシークレットアクセスキー。

temporary_aws_session_token

S3ステージング用の一時的なAWSセッショントークン

temporary_azure_sas_token

Azure Blob Storageのステージング用の一時的なAzure SASトークン

awsaccesskey

S3ステージング用のAWSアクセスキー。

awssecretkey

AWS S3ステージングのシークレットキー。

ターゲット

以下のオプションでは、書き込み先のSnowflakeデータベース、スキーマ、ウェアハウス、およびテーブルを指定します。

オプション

説明

sfdatabase

Snowflake データベース名。

sfschema

Snowflake スキーマ名。

sfwarehouse

Snowflakeの仮想データウェアハウスがクエリ実行に使用されます。

sfrole

セッションのSnowflakeロール

dbtable

ターゲットテーブル名。

書き込み動作

以下のオプションは、ターゲットのSnowflakeテーブルにデータが書き込まれる方法を制御します。

オプション

説明

column_mapping

DataFrame の列が Snowflake テーブルの列と一致する方法:name (列名による) または position (列の順序による)。デフォルトはnameです。

column_mismatch_behavior

DataFrameとテーブルの列が一致しない場合の挙動:error または ignore。デフォルトはerrorです。

truncate_table

trueの場合、書き込み前にターゲットテーブルを切り捨てます。デフォルトはfalseです。

usestagingtable

trueの場合、ターゲットにスワップする前に一時テーブルにデータをステージングすることで、アトミックな書き込みが可能になります。デフォルトはtrueです。

internal_execute_query_in_sync_mode

trueの場合、Snowflakeクエリーを同期的に実行します。デフォルトはfalseです。

autopushdown

true の場合は、フィルタリングと集計操作を Snowflake で実行します。デフォルトはtrueです。

Redshift

以下のセクションでは、機能別に整理された Redshift コネクタのサポートされているオプションをご紹介します。

接続

以下のオプションはRedshiftクラスターへの接続を構成します。

オプション

説明

host

Redshift クラスターエンドポイントホスト名

port

ポート番号。デフォルト:5439

database

Redshift データベース名。

connectionTimeout

接続を待機する最大時間(秒)。

認証

以下のオプションは、Redshift および Redshift が書き込み操作中に使用する S3 ステージング場所の認証情報を設定します。

オプション

説明

user

Redshiftのユーザー名。

password

Redshift のパスワードです。

aws_iam_role

RedshiftがステージングデータのためにS3にアクセスするために使用するIAMロールのARN

temporary_aws_access_key_id

一時的なS3ステージング用AWSアクセスキーID。有効期間の長い資格情報よりも推奨されます。

temporary_aws_secret_access_key

S3ステージング用の一時的なAWSシークレットアクセスキー。

temporary_aws_session_token

S3ステージング用の一時的なAWSセッショントークン

forward_spark_s3_credentials

trueの場合、SparkのS3認証情報をステージング用にRedshiftに転送します。Spark および Redshift が同じ S3 認証情報を共有している場合にのみ使用してください。デフォルトはfalseです。

書き込み動作

以下のオプションにより、ディストリビューション、ソートキー、およびステージング形式など、ターゲットのRedshiftテーブルへのデータの書き込み方法が制御されます。

オプション

説明

dbtable

ターゲットテーブル名。スキーマ修飾名に対応しています(例えば、myschema.mytable)。

batchsize

バッチあたりの挿入行数。デフォルト:1000

numPartitions

並列書き込み操作に使用するSparkパーティションの数。

queryTimeout

クエリー完了までの最大待機時間 (秒)

isolationLevel

トランザクション分離レベル:NONEREAD_COMMITTEDREAD_UNCOMMITTEDREPEATABLE_READ、または SERIALIZABLE。デフォルトはREAD_UNCOMMITTEDです。

diststyle

Redshift ディストリビューションスタイル: EVENKEY、またはALL

distkey

分布キーとして使用する列。diststyleKEYの場合に必須

sortkeyspec

Redshift テーブルのソートキーの指定(例: SORTKEY(col1, col2)

csvnullstring

ステージングCSVファイルに書き込まれる文字列で、 NULL値を表します。デフォルト:空の文字列。

tempformat

ステージングファイルの形式:CSVまたはAVRO。デフォルトはCSVです。

truncate

true の場合、削除して再作成する代わりに、overwrite モードでターゲットテーブルを切り捨てます。デフォルトはfalseです。

サーバレス コンピュートで PostgreSQL に書き込む

この例ではappendモードを使用し、Databricksのシークレットスコープから認証情報を取得します。

Python
df.write \
.format("postgresql") \
.option("host", dbutils.secrets.get(scope="<scope>", key="<host>")) \
.option("port", "<port>") \
.option("database", "<database-name>") \
.option("dbtable", "<table-name>") \
.option("user", dbutils.secrets.get(scope="<scope>", key="<user>")) \
.option("password", dbutils.secrets.get(scope="<scope>", key="<password>")) \
.mode("append") \
.save()

次のステップ

  • Spark データソース: 設定手順、コード例、およびSpark 統合戦略の比較。
  • JDBC connection:サーバレス環境でバンドルされているコネクタでサポートされていないオプション、またはバンドルされているコネクタがないデータソースの場合は、JDBCドライバを使用したUnity Catalog接続を使用します。
  • Spark API オプションリファレンス:データフレームReader、データフレームWriter、ファイル形式およびストリーミングソースのストリーミングオプションに関するリファレンス