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

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

セットアップ手順と例については、 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

Authentication

次のオプションでは、 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 SAS トークンAzure Blob Storage。
awsaccesskey S3 ステージング用の AWS アクセス キー。
awssecretkey S3 ステージング用の AWS 秘密鍵。

ターゲット

次のオプションでは、書き込む 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 接続を待機する最大時間 (秒)。

Authentication

次のオプションでは、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 NULL値を表すためにステージング CSV ファイルに書き込まれた文字列。 既定値: 空の文字列。
tempformat ステージング ファイル形式: CSV または AVRO。 既定値: CSV
truncate true場合は、ターゲット テーブルを削除して再作成するのではなく、overwrite モードで切り捨てます。 既定値: false

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

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

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 接続: サーバーレスのバンドルされたコネクタでサポートされていないオプション、またはバンドルされたコネクタのないデータ ソースの場合は、JDBC ドライバーとの Unity カタログ接続を使用します。
  • Spark API オプション リファレンス: DataFrameReader、DataFrameWriter、およびファイル形式とストリーミング ソースのストリーミング オプションのリファレンス。