サーバーレス コンピューティングでバンドルされたコネクタを使用して外部データ ソースに書き込む場合は、コネクタ オプションのサブセットのみがサポートされます。 次の表に、コネクタごとにサポートされているオプションを示します。
セットアップ手順と例については、 Spark データ ソースに関する記事を参照してください。
PostgreSQL
サーバーレス コンピューティングで PostgreSQL に書き込む場合は、次のオプションがサポートされます。
| オプション | 説明 |
|---|---|
host |
PostgreSQL サーバーのホスト名。 |
port |
ポート番号。 既定値: 5432。 |
database |
接続するデータベースの名前。 |
connectTimeout |
接続を待機する最大時間 (秒)。
0 はタイムアウトを無効にします。 |
user |
データベース ユーザー名。 |
password |
データベース パスワード。 |
dbtable |
ターゲット テーブル名。 スキーマ修飾名 ( myschema.mytable など) をサポートします。 |
batchsize |
バッチごとに挿入する行の数。 既定値: 1000。 |
numPartitions |
並列書き込み操作用の Spark パーティションの数。 |
queryTimeout |
クエリが完了するまで待機する最大時間 (秒)。
0 はタイムアウトを無効にします。 |
isolationLevel |
トランザクション分離レベル: NONE、 READ_COMMITTED、 READ_UNCOMMITTED、 REPEATABLE_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 |
認証の種類。 サポートされている値: SqlPassword、ActiveDirectoryPassword、ActiveDirectoryMSI。 |
dbtable |
ターゲット テーブル名。 スキーマ修飾名 ( myschema.mytable など) をサポートします。 |
batchsize |
バッチごとに挿入する行の数。 既定値: 1000。 |
numPartitions |
並列書き込み操作用の Spark パーティションの数。 |
queryTimeout |
クエリが完了するまで待機する最大時間 (秒)。
0 はタイムアウトを無効にします。 |
isolationLevel |
トランザクション分離レベル: NONE、 READ_COMMITTED、 READ_UNCOMMITTED、 REPEATABLE_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 |
トランザクション分離レベル: NONE、 READ_COMMITTED、 READ_UNCOMMITTED、 REPEATABLE_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_*、 awsaccesskey、 temporary_azure_sas_token) が必要です。
| オプション | 説明 |
|---|---|
sfuser |
Snowflake ユーザー名。 |
sfpassword |
Snowflake パスワード。
sfauthenticatorがsnowflakeされるときに使用されます。 |
sfToken |
OAuth アクセス トークン。
sfauthenticatorがoauthされるときに使用されます。 |
pem_private_key |
キーペア認証用の PEM 形式の秘密キー。
sfauthenticatorがsnowflake_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 |
トランザクション分離レベル: NONE、 READ_COMMITTED、 READ_UNCOMMITTED、 REPEATABLE_READ、または SERIALIZABLE。 既定値: READ_UNCOMMITTED。 |
diststyle |
Redshift 分散スタイル: EVEN、 KEY、または ALL。 |
distkey |
ディストリビューション キーとして使用する列。
diststyle が KEY の場合に必要です。 |
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、およびファイル形式とストリーミング ソースのストリーミング オプションのリファレンス。