Opções de escrita serverless para conectores agrupados

Ao escrever para uma fonte de dados externa usando um conector agrupado em computação serverless, apenas um subconjunto de opções de conectores é suportado. As tabelas seguintes listam as opções suportadas por conector.

Para instruções de configuração e exemplos, consulte fontes de dados Spark.

PostgreSQL

As seguintes opções são suportadas ao escrever para PostgreSQL em computação serverless.

Option Description
host Nome de host do servidor PostgreSQL.
port Número da porta. Padrão: 5432.
database Nome da base de dados a que se deve ligar.
connectTimeout Tempo máximo em segundos para esperar por uma ligação. 0 desativa o timeout.
user Nome de utilizador da base de dados.
password Palavra-passe da base de dados.
dbtable Nome da tabela de alvo. Suporta nomes qualificados pelo esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a inserir por lote. Padrão: 1000.
numPartitions Número de partições Spark para operações de escrita paralelas.
queryTimeout Tempo máximo em segundos para esperar que uma consulta seja concluída. 0 desativa o timeout.
isolationLevel Nível de isolamento de transações: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, trunca a tabela alvo em overwrite modo em vez de a eliminar e recriar. Padrão: false.
cascadeTruncate Se true, cascata a truncação para tabelas com referências de chave estrangeira à tabela alvo. Padrão: false.

SQL Server

As seguintes opções são suportadas ao escrever para SQL Server em computação serverless.

Option Description
host Nome de host da instância do SQL Server.
port Número da porta. Padrão: 1433.
database Nome da base de dados a que se deve ligar.
connectionTimeout Tempo máximo em segundos para esperar por uma ligação. 0 desativa o timeout.
encrypt Se true, encripta todos os dados enviados entre o cliente e o servidor usando TLS. Padrão: false.
trustServerCertificate Se true, confia no certificado TLS do servidor sem validação. Apenas para ambientes de desenvolvimento. Padrão: false.
debug Se true, permite o registo de depuração verboso para o conector. Padrão: false.
user Nome de utilizador da base de dados.
password Palavra-passe da base de dados.
authentication Tipo de autenticação. Valores suportados: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.
dbtable Nome da tabela de alvo. Suporta nomes qualificados pelo esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a inserir por lote. Padrão: 1000.
numPartitions Número de partições Spark para operações de escrita paralelas.
queryTimeout Tempo máximo em segundos para esperar que uma consulta seja concluída. 0 desativa o timeout.
isolationLevel Nível de isolamento de transações: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, trunca a tabela alvo em overwrite modo em vez de a eliminar e recriar. Padrão: false.

MySQL

As seguintes opções são suportadas ao escrever para MySQL em computação serverless.

Option Description
host Nome de host do servidor MySQL.
port Número da porta. Padrão: 3306.
database Nome da base de dados a que se deve ligar.
connectionTimeout Tempo máximo em segundos para esperar por uma ligação. 0 desativa o timeout.
requireSSL Se true, requer uma ligação encriptada por SSL ao servidor. Padrão: false.
useSSL Se true, ativa SSL para a ligação quando suportado pelo servidor. Padrão: false.
user Nome de utilizador da base de dados.
password Palavra-passe da base de dados.
dbtable Nome da tabela de alvo. Suporta nomes qualificados pelo esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a inserir por lote. Padrão: 1000.
numPartitions Número de partições Spark para operações de escrita paralelas.
queryTimeout Tempo máximo em segundos para esperar que uma consulta seja concluída. 0 desativa o timeout.
isolationLevel Nível de isolamento de transações: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, trunca a tabela alvo em overwrite modo em vez de a eliminar e recriar. Padrão: false.
cascadeTruncate Se true, cascata a truncação para tabelas com referências de chave estrangeira à tabela alvo. Padrão: false.

Snowflake

As secções seguintes listam as opções suportadas para o conector Snowflake, organizadas por função.

Conexão

As opções seguintes configuram a ligação ao Snowflake e o comportamento da sessão de controlo.

Option Description
host Nome de host da conta Snowflake (por exemplo, <account>.snowflakecomputing.com).
port Número da porta. Padrão: 443.
sfaccount Identificador de conta Snowflake.
sfauthenticator Método de autenticação: snowflake (palavra-passe), oauth (token) ou snowflake_jwt (par de chaves). Padrão: snowflake.
networktimeout Tempo limite em segundos para operações de rede.
sftimezone Fuso temporal para operações de carimbo temporal (por exemplo, America/New_York).
client_session_keep_alive Se true, envia sinais de keepalive para evitar o timeout da sessão durante operações de longa duração. Padrão: false.
ocspfailopen Se true, permite que as ligações prossigam quando a validação do certificado OCSP não está disponível (modo fail-open). Padrão: true.

Authentication

As seguintes opções fornecem credenciais para o método de autenticação configurado em sfauthenticator. As credenciais de staging (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) são necessárias quando os estágios Snowflake escrevem dados através de armazenamento na cloud.

Option Description
sfuser Nome de utilizador floco de neve.
sfpassword Palavra-passe do floco de neve. Usado quando sfauthenticator é snowflake.
sfToken Token de acesso OAuth. Usado quando sfauthenticator é oauth.
pem_private_key Chave privada em formato PEM para autenticação por pares de chaves. Usado quando sfauthenticator é snowflake_jwt.
temporary_aws_access_key_id ID temporário da chave de acesso AWS para o staging S3. Preferido ao awsaccesskey usar credenciais de curta duração.
temporary_aws_secret_access_key Chave de acesso secreto temporária AWS para o staging S3.
temporary_aws_session_token Token de sessão AWS temporário para staging S3.
temporary_azure_sas_token Temporary Azure SAS token for Armazenamento de Blobs do Azure staging.
awsaccesskey Chave de acesso AWS para staging S3.
awssecretkey Chave secreta AWS para staging S3.

Target

As seguintes opções especificam a base de dados Snowflake, o esquema, o armazém e a tabela para escrever.

Option Description
sfdatabase Nome da base de dados Snowflake.
sfschema Nome do esquema floco de neve.
sfwarehouse Armazém virtual Snowflake usado para execução de consultas.
sfrole Papel de floco de neve para a sessão.
dbtable Nome da tabela de alvo.

Comportamento de escrita

As seguintes opções controlam como os dados são escritos na tabela Snowflake de destino.

Option Description
column_mapping Como as colunas DataFrame são associadas às colunas da tabela Snowflake: name (pelo nome da coluna) ou position (pela ordem das colunas). Padrão: name.
column_mismatch_behavior Comportamento quando as colunas DataFrame e tabela não se alinham: error ou ignore. Padrão: error.
truncate_table Se true, trunca a tabela alvo antes de escrever. Padrão: false.
usestagingtable Se true, etapas de dados numa tabela temporária antes de serem trocados para o alvo, permitindo escritas atómicas. Padrão: true.
internal_execute_query_in_sync_mode Se true, executa consultas Snowflake de forma síncrona. Padrão: false.
autopushdown Se true, desloca as operações de filtro e agregação para o Snowflake para execução. Padrão: true.

Redshift

As secções seguintes listam as opções suportadas para o conector Redshift, organizadas por função.

Conexão

As opções seguintes configuram a ligação ao cluster Redshift.

Option Description
host Nome host do endpoint do cluster Redshift.
port Número da porta. Padrão: 5439.
database Nome da base de dados Redshift.
connectionTimeout Tempo máximo em segundos para esperar por uma ligação.

Authentication

As opções seguintes configuram credenciais para o Redshift e para o local de staging S3 que o Redshift utiliza durante as operações de escrita.

Option Description
user Nome de utilizador Redshift.
password Palavra-passe Redshift.
aws_iam_role ARN do papel IAM que o Redshift usa para aceder ao S3 para dados de staging.
temporary_aws_access_key_id ID temporário da chave de acesso AWS para o staging S3. Preferido a credenciais duradouras.
temporary_aws_secret_access_key Chave de acesso secreto temporária AWS para o staging S3.
temporary_aws_session_token Token de sessão AWS temporário para staging S3.
forward_spark_s3_credentials Se true, encaminha as credenciais S3 do Spark para Redshift para o staging. Use apenas quando o Spark e o Redshift partilham as mesmas credenciais S3. Padrão: false.

Comportamento de escrita

As opções seguintes controlam como os dados são escritos na tabela Redshift alvo, incluindo distribuição, chaves de ordenação e formato de staging.

Option Description
dbtable Nome da tabela de alvo. Suporta nomes qualificados pelo esquema (por exemplo, myschema.mytable).
batchsize Número de filas por inserção de lote. Padrão: 1000.
numPartitions Número de partições Spark para operações de escrita paralelas.
queryTimeout Tempo máximo em segundos para esperar que uma consulta seja concluída.
isolationLevel Nível de isolamento de transações: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, ou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
diststyle Estilo de distribuição para o Redshift: EVEN, KEY, ou ALL.
distkey Coluna para usar como chave de distribuição. Obrigatório quando diststyle é KEY.
sortkeyspec Especificação da chave de ordenação para a tabela de Redshift (por exemplo, SORTKEY(col1, col2)).
csvnullstring String escrita em ficheiros CSV de staging para representar NULL valores. Padrão: cadeia vazia.
tempformat Formato de ficheiro de staging: CSV ou AVRO. Padrão: CSV.
truncate Se true, trunca a tabela alvo em overwrite modo em vez de a eliminar e recriar. Padrão: false.

Escrever para PostgreSQL em computação serverless

Este exemplo utiliza append o modo e recupera credenciais de um escopo secreto do 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()

Passos seguintes

  • Fontes de dados do Spark: instruções de configuração, exemplos de código e uma comparação das estratégias de integração do Spark.
  • Ligação JDBC: Use uma ligação Unity Catalog com um driver JDBC para opções não suportadas por conectores agrupados em serverless, ou para fontes de dados sem conector incluído.
  • Referência de opções da API do Spark: Referência para DataFrameReader, DataFrameWriter e opções de streaming para formatos de ficheiro e fontes de streaming.