Paketlenmiş bağlayıcılar için sunucusuz yazma seçenekleri

Sunucusuz işlemde paketlenmiş bağlayıcı kullanarak dış veri kaynağına yazarken, bağlayıcı seçeneklerinin yalnızca bir alt kümesi desteklenir. Aşağıdaki tablolarda bağlayıcı başına desteklenen seçenekler listelenmiştir.

Kurulum yönergeleri ve örnekler için bkz. Spark veri kaynakları.

PostgreSQL

Sunucusuz işlemde PostgreSQL'e yazarken aşağıdaki seçenekler desteklenir.

Seçenek Description
host PostgreSQL sunucusunun ana bilgisayar adı.
port Port numarası. Varsayılan: 5432.
database Bağlanacak veritabanının adı.
connectTimeout Bağlantı beklenmek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
user Veritabanı kullanıcı adı.
password Veritabanı parolası.
dbtable Hedef tablo adı. Şema nitelikli adları destekler (örneğin, myschema.mytable).
batchsize Toplu iş başına eklenecek satır sayısı. Varsayılan: 1000.
numPartitions Paralel yazma işlemleri için Spark bölüm sayısı.
queryTimeout Sorgu tamamlanmasını beklemek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
isolationLevel İşlem yalıtım düzeyi: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READveya SERIALIZABLE. Varsayılan: READ_UNCOMMITTED.
truncate ise true, hedef tabloyu overwrite bırakarak yeniden oluşturma yerine modda kısaltır. Varsayılan: false.
cascadeTruncate ise true, kesme işlemini hedef tabloya yabancı anahtar başvuruları içeren tablolara basamaklar. Varsayılan: false.

SQL Server

Sunucusuz işlemde SQL Server yazarken aşağıdaki seçenekler desteklenir.

Seçenek Description
host SQL Server örneğinin ana bilgisayar adı.
port Port numarası. Varsayılan: 1433.
database Bağlanacak veritabanının adı.
connectionTimeout Bağlantı beklenmek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
encrypt ise true, istemci ile sunucu arasında gönderilen tüm verileri TLS kullanarak şifreler. Varsayılan: false.
trustServerCertificate ise true, doğrulama olmadan sunucunun TLS sertifikasına güvenir. Yalnızca geliştirme ortamları için. Varsayılan: false.
debug ise truebağlayıcı için ayrıntılı hata ayıklama günlüğünü etkinleştirir. Varsayılan: false.
user Veritabanı kullanıcı adı.
password Veritabanı parolası.
authentication Kimlik doğrulama türü. Desteklenen değerler: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.
dbtable Hedef tablo adı. Şema nitelikli adları destekler (örneğin, myschema.mytable).
batchsize Toplu iş başına eklenecek satır sayısı. Varsayılan: 1000.
numPartitions Paralel yazma işlemleri için Spark bölüm sayısı.
queryTimeout Sorgu tamamlanmasını beklemek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
isolationLevel İşlem yalıtım düzeyi: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READveya SERIALIZABLE. Varsayılan: READ_UNCOMMITTED.
truncate ise true, hedef tabloyu overwrite bırakarak yeniden oluşturma yerine modda kısaltır. Varsayılan: false.

MySQL

Sunucusuz işlemde MySQL'e yazarken aşağıdaki seçenekler desteklenir.

Seçenek Description
host MySQL sunucusunun ana bilgisayar adı.
port Port numarası. Varsayılan: 3306.
database Bağlanacak veritabanının adı.
connectionTimeout Bağlantı beklenmek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
requireSSL ise true, sunucuya SSL ile şifrelenmiş bir bağlantı gerektirir. Varsayılan: false.
useSSL ise true, sunucu tarafından desteklendiğinde bağlantı için SSL'yi etkinleştirir. Varsayılan: false.
user Veritabanı kullanıcı adı.
password Veritabanı parolası.
dbtable Hedef tablo adı. Şema nitelikli adları destekler (örneğin, myschema.mytable).
batchsize Toplu iş başına eklenecek satır sayısı. Varsayılan: 1000.
numPartitions Paralel yazma işlemleri için Spark bölüm sayısı.
queryTimeout Sorgu tamamlanmasını beklemek için saniye cinsinden en uzun süre. 0 zaman aşımını devre dışı bırakır.
isolationLevel İşlem yalıtım düzeyi: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READveya SERIALIZABLE. Varsayılan: READ_UNCOMMITTED.
truncate ise true, hedef tabloyu overwrite bırakarak yeniden oluşturma yerine modda kısaltır. Varsayılan: false.
cascadeTruncate ise true, kesme işlemini hedef tabloya yabancı anahtar başvuruları içeren tablolara basamaklar. Varsayılan: false.

Snowflake

Aşağıdaki bölümlerde Snowflake bağlayıcısı için işleve göre düzenlenmiş desteklenen seçenekler listelenmiştir.

Bağlantı

Aşağıdaki seçenekler Snowflake bağlantısını yapılandırarak oturum davranışını denetler.

Seçenek Description
host Snowflake hesabı ana bilgisayar adı (örneğin, <account>.snowflakecomputing.com).
port Port numarası. Varsayılan: 443.
sfaccount Snowflake hesap tanımlayıcısı.
sfauthenticator Kimlik doğrulama yöntemi: snowflake (parola), oauth (belirteç) veya snowflake_jwt (anahtar çifti). Varsayılan: snowflake.
networktimeout Ağ işlemleri için saniyeler içinde zaman aşımı.
sftimezone Zaman damgası işlemleri için saat dilimi (örneğin, America/New_York).
client_session_keep_alive ise true, uzun süre çalışan işlemler sırasında oturum zaman aşımını önlemek için keepalive sinyalleri gönderir. Varsayılan: false.
ocspfailopen ise true, OCSP sertifika doğrulaması kullanılamadığında (başarısız açma modu) bağlantıların devam etmesine izin verir. Varsayılan: true.

Authentication

Aşağıdaki seçenekler, içinde sfauthenticatoryapılandırılan kimlik doğrulama yöntemi için kimlik bilgilerini sağlar. Snowflake aşamaları bulut depolama aracılığıyla veri yazdığında hazırlama kimlik bilgileri (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) gereklidir.

Seçenek Description
sfuser Snowflake kullanıcı adı.
sfpassword Snowflake parolası. olduğunda sfauthenticatorsnowflakekullanılır.
sfToken OAuth erişim belirteci. olduğunda sfauthenticatoroauthkullanılır.
pem_private_key Anahtar çifti kimlik doğrulaması için PEM biçiminde özel anahtar. olduğunda sfauthenticatorsnowflake_jwtkullanılır.
temporary_aws_access_key_id S3 hazırlama için geçici AWS erişim anahtarı kimliği. Kısa süreli kimlik bilgileri kullanılırken tercih awsaccesskey edilir.
temporary_aws_secret_access_key S3 hazırlama için geçici AWS gizli erişim anahtarı.
temporary_aws_session_token S3 hazırlama için geçici AWS oturum belirteci.
temporary_azure_sas_token Azure Blob Depolama hazırlama için geçici Azure SAS belirteci.
awsaccesskey S3 hazırlama için AWS erişim anahtarı.
awssecretkey S3 hazırlama için AWS gizli anahtarı.

Hedef

Aşağıdaki seçenekler yazılacak Snowflake veritabanını, şemasını, ambarını ve tablosunu belirtir.

Seçenek Description
sfdatabase Snowflake veritabanı adı.
sfschema Snowflake şema adı.
sfwarehouse Sorgu yürütme için kullanılan Snowflake sanal ambarı.
sfrole Oturum için snowflake rolü.
dbtable Hedef tablo adı.

Yazma davranışı

Aşağıdaki seçenekler verilerin hedef Snowflake tablosuna nasıl yazıldıklarını denetler.

Seçenek Description
column_mapping DataFrame sütunları Snowflake tablo sütunlarıyla nasıl eşleştirilir: name (sütun adına göre) veya position (sütun sırasına göre). Varsayılan: name.
column_mismatch_behavior DataFrame ve tablo sütunları hizalı olmadığında davranış: error veya ignore. Varsayılan: error.
truncate_table ise true, yazmadan önce hedef tabloyu kısaltır. Varsayılan: false.
usestagingtable ise true, verileri hedefe değiştirmeden önce geçici bir tabloya yerleştirir ve atomik yazmaları etkinleştirir. Varsayılan: true.
internal_execute_query_in_sync_mode ise true, Snowflake sorgularını zaman uyumlu olarak yürütür. Varsayılan: false.
autopushdown ise true, filtre ve toplama işlemlerini yürütme için Snowflake'e gönderir. Varsayılan: true.

Redshift

Aşağıdaki bölümlerde Redshift bağlayıcısı için işleve göre düzenlenmiş desteklenen seçenekler listelenmiştir.

Bağlantı

Aşağıdaki seçenekler Redshift kümesine bağlantıyı yapılandırılır.

Seçenek Description
host Redshift kümesi uç noktası ana bilgisayar adı.
port Port numarası. Varsayılan: 5439.
database Redshift veritabanı adı.
connectionTimeout Bağlantı beklenmek için saniye cinsinden en uzun süre.

Authentication

Aşağıdaki seçenekler Redshift ve Redshift'in yazma işlemleri sırasında kullandığı S3 hazırlama konumu için kimlik bilgilerini yapılandırır.

Seçenek Description
user Redshift kullanıcı adı.
password Redshift parolası.
aws_iam_role Redshift'in hazırlama verileri için S3'e erişmek için kullandığı IAM rolünün ARN'i.
temporary_aws_access_key_id S3 hazırlama için geçici AWS erişim anahtarı kimliği. Uzun ömürlü kimlik bilgileri yerine tercih edilir.
temporary_aws_secret_access_key S3 hazırlama için geçici AWS gizli erişim anahtarı.
temporary_aws_session_token S3 hazırlama için geçici AWS oturum belirteci.
forward_spark_s3_credentials ise true, Spark'ın S3 kimlik bilgilerini hazırlama için Redshift'e iletir. Yalnızca Spark ve Redshift aynı S3 kimlik bilgilerini paylaştığında kullanın. Varsayılan: false.

Yazma davranışı

Aşağıdaki seçenekler verilerin dağıtım, sıralama anahtarları ve hazırlama biçimi dahil olmak üzere hedef Redshift tablosuna nasıl yazılmasını denetler.

Seçenek Description
dbtable Hedef tablo adı. Şema nitelikli adları destekler (örneğin, myschema.mytable).
batchsize Toplu ekleme başına satır sayısı. Varsayılan: 1000.
numPartitions Paralel yazma işlemleri için Spark bölüm sayısı.
queryTimeout Sorgu tamamlanmasını beklemek için saniye cinsinden en uzun süre.
isolationLevel İşlem yalıtım düzeyi: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READveya SERIALIZABLE. Varsayılan: READ_UNCOMMITTED.
diststyle Redshift dağıtım stili: EVEN, KEYveya ALL.
distkey Dağıtım anahtarı olarak kullanılacak sütun. diststyle KEY olduğunda gereklidir.
sortkeyspec Redshift tablosu için anahtar belirtimini sıralama (örneğin, SORTKEY(col1, col2)).
csvnullstring Değerleri temsil NULL etmek için HAZıRLAMA CSV dosyalarında yazılan dize. Varsayılan: boş dize.
tempformat Hazırlama dosyası biçimi: CSV veya AVRO. Varsayılan: CSV.
truncate ise true, hedef tabloyu overwrite bırakarak yeniden oluşturma yerine modda kısaltır. Varsayılan: false.

Sunucusuz işlemde PostgreSQL'e yazma

Bu örnek modu kullanır append ve databricks gizli dizi kapsamından kimlik bilgilerini alır.

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()

Sonraki Adımlar

  • Spark veri kaynakları: Kurulum yönergeleri, kod örnekleri ve Spark tümleştirme stratejilerinin karşılaştırması.
  • JDBC bağlantısı: Sunucusuz bağlayıcılarda paketlenmiş bağlayıcılar tarafından desteklenmeyen seçenekler veya paketlenmiş bağlayıcısı olmayan veri kaynakları için JDBC sürücüsüyle Unity Kataloğu bağlantısı kullanın.
  • Spark API seçenekleri başvurusu: Dosya biçimleri ve akış kaynakları için DataFrameReader, DataFrameWriter ve akış seçenekleri başvurusu.