Opzioni di scrittura serverless per i connettori in bundle

Quando si scrive in un'origine dati esterna usando un connettore in bundle nel calcolo serverless, sono supportati solo un subset di opzioni del connettore. Le tabelle seguenti elencano le opzioni supportate per ogni connettore.

Per istruzioni ed esempi di configurazione, vedere Origini dati Spark.

PostgreSQL

Quando si scrive in PostgreSQL in un ambiente di calcolo serverless, sono supportate le opzioni seguenti.

Option Description
host Nome host del server PostgreSQL.
port Numero porta. Impostazione predefinita: 5432.
database Nome del database a cui connettersi.
connectTimeout Tempo massimo in secondi di attesa per una connessione. 0 disabilita il timeout.
user Nome utente del database.
password Password del database.
dbtable Nome tabella di destinazione. Supporta i nomi qualificati per lo schema , ad esempio myschema.mytable.
batchsize Numero di righe da inserire per batch. Impostazione predefinita: 1000.
numPartitions Numero di partizioni Spark per operazioni di scrittura parallele.
queryTimeout Tempo massimo in secondi di attesa del completamento di una query. 0 disabilita il timeout.
isolationLevel Livello di isolamento delle transazioni: NONE, READ_COMMITTED, REPEATABLE_READREAD_UNCOMMITTED, o SERIALIZABLE. Impostazione predefinita: READ_UNCOMMITTED.
truncate Se true, tronca la tabella di destinazione in overwrite modalità anziché eliminarla e ricrearla. Impostazione predefinita: false.
cascadeTruncate Se true, esegue il troncamento alle tabelle con riferimenti di chiave esterna alla tabella di destinazione. Impostazione predefinita: false.

SQL Server

Durante la scrittura in SQL Server nel calcolo serverless sono supportate le opzioni seguenti.

Option Description
host Nome host dell'istanza di SQL Server.
port Numero porta. Impostazione predefinita: 1433.
database Nome del database a cui connettersi.
connectionTimeout Tempo massimo in secondi di attesa per una connessione. 0 disabilita il timeout.
encrypt Se true, crittografa tutti i dati inviati tra il client e il server usando TLS. Impostazione predefinita: false.
trustServerCertificate Se true, considera attendibile il certificato TLS del server senza convalida. Solo per gli ambienti di sviluppo. Impostazione predefinita: false.
debug Se true, abilita la registrazione dettagliata del debug per il connettore. Impostazione predefinita: false.
user Nome utente del database.
password Password del database.
authentication Tipo di autenticazione. Valori supportati: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.
dbtable Nome tabella di destinazione. Supporta i nomi qualificati per lo schema , ad esempio myschema.mytable.
batchsize Numero di righe da inserire per batch. Impostazione predefinita: 1000.
numPartitions Numero di partizioni Spark per operazioni di scrittura parallele.
queryTimeout Tempo massimo in secondi di attesa del completamento di una query. 0 disabilita il timeout.
isolationLevel Livello di isolamento delle transazioni: NONE, READ_COMMITTED, REPEATABLE_READREAD_UNCOMMITTED, o SERIALIZABLE. Impostazione predefinita: READ_UNCOMMITTED.
truncate Se true, tronca la tabella di destinazione in overwrite modalità anziché eliminarla e ricrearla. Impostazione predefinita: false.

MySQL

Quando si scrive in MySQL in un ambiente di calcolo serverless, sono supportate le opzioni seguenti.

Option Description
host Nome host del server MySQL.
port Numero porta. Impostazione predefinita: 3306.
database Nome del database a cui connettersi.
connectionTimeout Tempo massimo in secondi di attesa per una connessione. 0 disabilita il timeout.
requireSSL Se true, richiede una connessione crittografata SSL al server. Impostazione predefinita: false.
useSSL Se true, abilita SSL per la connessione se supportato dal server. Impostazione predefinita: false.
user Nome utente del database.
password Password del database.
dbtable Nome tabella di destinazione. Supporta i nomi qualificati per lo schema , ad esempio myschema.mytable.
batchsize Numero di righe da inserire per batch. Impostazione predefinita: 1000.
numPartitions Numero di partizioni Spark per operazioni di scrittura parallele.
queryTimeout Tempo massimo in secondi di attesa del completamento di una query. 0 disabilita il timeout.
isolationLevel Livello di isolamento delle transazioni: NONE, READ_COMMITTED, REPEATABLE_READREAD_UNCOMMITTED, o SERIALIZABLE. Impostazione predefinita: READ_UNCOMMITTED.
truncate Se true, tronca la tabella di destinazione in overwrite modalità anziché eliminarla e ricrearla. Impostazione predefinita: false.
cascadeTruncate Se true, esegue il troncamento alle tabelle con riferimenti di chiave esterna alla tabella di destinazione. Impostazione predefinita: false.

Snowflake

Le sezioni seguenti elencano le opzioni supportate per il connettore Snowflake, organizzate per funzione.

Connessione

Le opzioni seguenti configurano la connessione a Snowflake e controllano il comportamento della sessione.

Option Description
host Snowflake account hostname (ad esempio, <account>.snowflakecomputing.com).
port Numero porta. Impostazione predefinita: 443.
sfaccount Identificatore dell'account Snowflake.
sfauthenticator Metodo di autenticazione: snowflake (password), oauth (token) o snowflake_jwt (coppia di chiavi). Impostazione predefinita: snowflake.
networktimeout Timeout in secondi per le operazioni di rete.
sftimezone Fuso orario per le operazioni di timestamp , ad esempio America/New_York.
client_session_keep_alive Se true, invia segnali keepalive per evitare il timeout della sessione durante le operazioni a esecuzione prolungata. Impostazione predefinita: false.
ocspfailopen Se true, consente alle connessioni di continuare quando la convalida del certificato OCSP non è disponibile (modalità di apertura non riuscita). Impostazione predefinita: true.

Authentication

Le opzioni seguenti forniscono le credenziali per il metodo di autenticazione configurato in sfauthenticator. Le credenziali di gestione temporanea (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) sono necessarie quando le fasi snowflake scrivono i dati tramite l'archiviazione cloud.

Option Description
sfuser Nome utente Snowflake.
sfpassword Password snowflake. Usato quando sfauthenticator è snowflake.
sfToken Token di accesso OAuth. Usato quando sfauthenticator è oauth.
pem_private_key Chiave privata in formato PEM per l'autenticazione con coppia di chiavi. Usato quando sfauthenticator è snowflake_jwt.
temporary_aws_access_key_id ID chiave di accesso DI AWS temporaneo per la gestione temporanea di S3. Preferibile rispetto awsaccesskey all'uso di credenziali di breve durata.
temporary_aws_secret_access_key Chiave di accesso temporanea del segreto AWS per la gestione temporanea di S3.
temporary_aws_session_token Token di sessione AWS temporaneo per la gestione temporanea di S3.
temporary_azure_sas_token Token di firma di accesso condiviso temporaneo Azure per la gestione temporanea Archiviazione BLOB di Azure.
awsaccesskey Chiave di accesso AWS per la gestione temporanea di S3.
awssecretkey Chiave privata AWS per la gestione temporanea di S3.

Obiettivo

Le opzioni seguenti specificano il database Snowflake, lo schema, il warehouse e la tabella in cui scrivere.

Option Description
sfdatabase Nome del database Snowflake.
sfschema Nome dello schema Snowflake.
sfwarehouse Warehouse virtuale Snowflake usato per l'esecuzione di query.
sfrole Ruolo Snowflake per la sessione.
dbtable Nome tabella di destinazione.

comportamento di scrittura

Le opzioni seguenti controllano la modalità di scrittura dei dati nella tabella Snowflake di destinazione.

Option Description
column_mapping Modalità di corrispondenza delle colonne del dataframe con le colonne della tabella Snowflake: name (per nome di colonna) o position (in base all'ordine delle colonne). Impostazione predefinita: name.
column_mismatch_behavior Comportamento quando le colonne dataframe e tabella non sono allineate: error o ignore. Impostazione predefinita: error.
truncate_table Se true, tronca la tabella di destinazione prima di scrivere. Impostazione predefinita: false.
usestagingtable Se true, inserisce i dati in una tabella temporanea prima di eseguire lo scambio nella destinazione, abilitando le scritture atomico. Impostazione predefinita: true.
internal_execute_query_in_sync_mode Se true, esegue query Snowflake in modo sincrono. Impostazione predefinita: false.
autopushdown Se true, esegue il push delle operazioni di filtro e aggregazione fino a Snowflake per l'esecuzione. Impostazione predefinita: true.

Redshift

Le sezioni seguenti elencano le opzioni supportate per il connettore Redshift, organizzate per funzione.

Connessione

Le opzioni seguenti consentono di configurare la connessione al cluster Redshift.

Option Description
host Nome host dell'endpoint del cluster Redshift.
port Numero porta. Impostazione predefinita: 5439.
database Nome del database Redshift.
connectionTimeout Tempo massimo in secondi di attesa per una connessione.

Authentication

Le opzioni seguenti configurano le credenziali per Redshift e per il percorso di gestione temporanea S3 usato da Redshift durante le operazioni di scrittura.

Option Description
user Nome utente redshift.
password Password di Redshift.
aws_iam_role ARN del ruolo IAM usato da Redshift per accedere a S3 per i dati di gestione temporanea.
temporary_aws_access_key_id ID chiave di accesso DI AWS temporaneo per la gestione temporanea di S3. Preferito rispetto alle credenziali di lunga durata.
temporary_aws_secret_access_key Chiave di accesso temporanea del segreto AWS per la gestione temporanea di S3.
temporary_aws_session_token Token di sessione AWS temporaneo per la gestione temporanea di S3.
forward_spark_s3_credentials Se true, inoltra le credenziali di Spark S3 a Redshift per la gestione temporanea. Usare solo quando Spark e Redshift condividono le stesse credenziali S3. Impostazione predefinita: false.

comportamento di scrittura

Le opzioni seguenti controllano la modalità di scrittura dei dati nella tabella Redshift di destinazione, tra cui distribuzione, chiavi di ordinamento e formato di staging.

Option Description
dbtable Nome tabella di destinazione. Supporta i nomi qualificati per lo schema , ad esempio myschema.mytable.
batchsize Numero di righe per inserimento batch. Impostazione predefinita: 1000.
numPartitions Numero di partizioni Spark per operazioni di scrittura parallele.
queryTimeout Tempo massimo in secondi di attesa del completamento di una query.
isolationLevel Livello di isolamento delle transazioni: NONE, READ_COMMITTED, REPEATABLE_READREAD_UNCOMMITTED, o SERIALIZABLE. Impostazione predefinita: READ_UNCOMMITTED.
diststyle Stile di distribuzione redshift: EVEN, KEYo ALL.
distkey Colonna da usare come chiave di distribuzione. Obbligatorio quando diststyle è KEY.
sortkeyspec Specifica della chiave di ordinamento per la tabella Redshift , ad esempio SORTKEY(col1, col2).
csvnullstring Stringa scritta nei file CSV di staging per rappresentare NULL i valori. Valore predefinito: stringa vuota.
tempformat Formato del file di gestione temporanea: CSV o AVRO. Impostazione predefinita: CSV.
truncate Se true, tronca la tabella di destinazione in overwrite modalità anziché eliminarla e ricrearla. Impostazione predefinita: false.

Scrivere in PostgreSQL in un ambiente di calcolo serverless

Questo esempio usa la append modalità e recupera le credenziali da un ambito segreto 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()

Passaggi successivi

  • Origini dati Spark: istruzioni di installazione, esempi di codice e un confronto delle strategie di integrazione di Spark.
  • Connessione JDBC: usare una connessione del catalogo Unity con un driver JDBC per le opzioni non supportate dai connettori in bundle in serverless o per le origini dati senza un connettore in bundle.
  • Informazioni di riferimento sulle opzioni dell'API Spark: informazioni di riferimento per le opzioni DataFrameReader, DataFrameWriter e streaming per formati di file e origini di streaming.