Pular para o conteúdo principal

Opções de gravação serverless para conectores agrupados

nota

A gravação em fontes de dados externas usando conectores Spark integrados em compute sem servidor está em versão prévia pública.

Ao escrever para uma fonte de dados externa usando um conector empacotado em compute serverless, apenas um subconjunto de opções de conector é suportado. As tabelas a seguir listam as opções compatíveis por conector.

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

PostgreSQL

As seguintes opções são suportadas ao gravar dados no PostgreSQL em compute serverless.

Opção

Descrição

host

Nome do hostname do servidor PostgreSQL.

port

Número de porta. default: 5432.

database

Nome da base de dados para conectar

connectTimeout

Tempo máximo em segundos para aguardar uma conexão. 0 desativa o tempo limite.

user

Nome de usuário do banco de dados.

password

Senha da base de dados.

dbtable

Nome da tabela de destino. Suporta nomes qualificados por esquema (por exemplo, myschema.mytable).

batchsize

Número de linhas a inserir por lote. default: 1000.

numPartitions

Número de partições do Spark para operações de gravação paralelas.

queryTimeout

Tempo máximo em segundos para aguardar a conclusão de uma consulta. 0 desativa o tempo limite.

isolationLevel

Nível de isolamento de transação: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. default: READ_UNCOMMITTED.

truncate

Se true, trunca a tabela de destino no modo overwrite em vez de descartá-la e recriá-la. Default: false.

cascadeTruncate

Se true, o truncamento se propaga para as tabelas com referências de chave estrangeira para a tabela de destino. default: false.

SQL Server

As seguintes opções são suportadas ao gravar dados no SQL Server em compute serverless.

Opção

Descrição

host

Hostname da instância do SQL Server.

port

Número de porta. default: 1433.

database

Nome da base de dados para conectar

connectionTimeout

Tempo máximo em segundos para aguardar uma conexão. 0 desativa o tempo limite.

encrypt

Se true, criptografa todos os dados enviados entre o cliente e o servidor usando TLS. default: false.

trustServerCertificate

Se true, confia no certificado TLS do servidor sem validação. Somente para ambientes de desenvolvimento. default: false.

debug

Se true, ativa registros de depuração detalhados para o conector. default: false.

user

Nome de usuário do banco de dados.

password

Senha da base de dados.

authentication

Tipo de autenticação. Valores suportados: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.

dbtable

Nome da tabela de destino. Suporta nomes qualificados por esquema (por exemplo, myschema.mytable).

batchsize

Número de linhas a inserir por lote. default: 1000.

numPartitions

Número de partições do Spark para operações de gravação paralelas.

queryTimeout

Tempo máximo em segundos para aguardar a conclusão de uma consulta. 0 desativa o tempo limite.

isolationLevel

Nível de isolamento de transação: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. default: READ_UNCOMMITTED.

truncate

Se true, trunca a tabela de destino no modo overwrite em vez de descartá-la e recriá-la. Default: false.

MySQL

As seguintes opções têm suporte ao gravar no MySQL em compute serverless.

Opção

Descrição

host

Hostname do servidor MySQL.

port

Número de porta. default: 3306.

database

Nome da base de dados para conectar

connectionTimeout

Tempo máximo em segundos para aguardar uma conexão. 0 desativa o tempo limite.

requireSSL

Se true, requer uma conexão criptografada por SSL ao servidor. default: false.

useSSL

Se true, habilita SSL para a conexão quando compatível com o servidor. default: false.

user

Nome de usuário do banco de dados.

password

Senha da base de dados.

dbtable

Nome da tabela de destino. Suporta nomes qualificados por esquema (por exemplo, myschema.mytable).

batchsize

Número de linhas a inserir por lote. default: 1000.

numPartitions

Número de partições do Spark para operações de gravação paralelas.

queryTimeout

Tempo máximo em segundos para aguardar a conclusão de uma consulta. 0 desativa o tempo limite.

isolationLevel

Nível de isolamento de transação: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. default: READ_UNCOMMITTED.

truncate

Se true, trunca a tabela de destino no modo overwrite em vez de descartá-la e recriá-la. Default: false.

cascadeTruncate

Se true, o truncamento se propaga para as tabelas com referências de chave estrangeira para a tabela de destino. default: false.

Snowflake

As seções a seguir listam as opções suportadas para o conector Snowflake, organizadas por função.

Conexão

As seguintes opções configuram a conexão com o Snowflake e controlam o comportamento da sessão.

Opção

Descrição

host

Snowflake account hostname (por exemplo, <account>.snowflakecomputing.com).

port

Número de porta. default: 443.

sfaccount

Identificador de account Snowflake.

sfauthenticator

Método de autenticação: snowflake (senha), oauth (token), ou snowflake_jwt (par de chaves). default: snowflake.

networktimeout

Tempo limite em segundos para operações de rede.

sftimezone

Fuso horário para operações de carimbo de data/hora (por exemplo, America/New_York).

client_session_keep_alive

Se true, envia sinais keepalive para evitar o tempo limite da sessão durante operações de longa duração. default: false.

ocspfailopen

Se true, permite o prosseguimento das conexões quando a validação de certificado OCSP não estiver disponível (modo de falha aberta). default: true.

Autenticação

As opções a seguir fornecem credenciais para o método de autenticação configurado em sfauthenticator. Credenciais de staging (temporary_aws_*, awsaccesskey, temporary_azure_sas_token) são necessárias quando os estágios do Snowflake gravam dados por meio do armazenamento em nuvem.

Opção

Descrição

sfuser

Nome de usuário do Snowflake.

sfpassword

Senha do Snowflake. Usado quando sfauthenticator é snowflake.

sfToken

Token de acesso OAuth. Usado quando sfauthenticator é oauth.

pem_private_key

Chave privada no formato PEM para autenticação por par de chaves. Usado quando sfauthenticator é snowflake_jwt.

temporary_aws_access_key_id

ID da key de acesso temporária da AWS para o ambiente de preparação S3. Preferível a awsaccesskey ao usar credenciais de curta duração.

temporary_aws_secret_access_key

Chave de acesso secreta temporária da AWS para o ambiente de preparação S3.

temporary_aws_session_token

Token de sessão temporário da AWS para zoneamento S3.

temporary_azure_sas_token

Token temporário do Azure SAS para o ambiente de preparação do Azure Blob Storage.

awsaccesskey

Chave de acesso da AWS para o ambiente de preparação S3.

awssecretkey

Chave secreta da AWS para o ambiente de preparação S3.

Destino

As opções a seguir especificam o banco de dados Snowflake, o esquema, o warehouse e a tabela para gravação.

Opção

Descrição

sfdatabase

Nome do banco de dados Snowflake.

sfschema

Nome do esquema Snowflake.

sfwarehouse

Snowflake warehouse virtual utilizado para execução de query

sfrole

Função Snowflake para a sessão.

dbtable

Nome da tabela de destino.

Comportamento de escrita

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

Opção

Descrição

column_mapping

Como as colunas do DataFrame são mapeadas para as colunas da tabela Snowflake: name (por nome da coluna) ou position (por ordem da coluna). Default: name.

column_mismatch_behavior

Comportamento quando as colunas do DataFrame e da tabela não se alinham: error ou ignore. Default: error.

truncate_table

Se true, trunca a tabela de destino antes de escrever. default: false.

usestagingtable

Se true, armazena dados em uma tabela temporária antes de trocar para a tabela de destino, possibilitando gravações atômicas. default: true.

internal_execute_query_in_sync_mode

Se true, executa queries Snowflake sincronamente. default: false.

autopushdown

Se true, empurra as operações de filtro e agregação para o Snowflake para execução. default: true.

Redshift

As seções a seguir listam as opções suportadas para o conector Redshift, organizadas por função.

Conexão

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

Opção

Descrição

host

Hostname de endpoint de cluster Redshift.

port

Número de porta. default: 5439.

database

Nome do banco de dados Redshift.

connectionTimeout

Tempo máximo em segundos para aguardar uma conexão.

Autenticação

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

Opção

Descrição

user

Nome de usuário do Redshift.

password

Senha do Redshift.

aws_iam_role

ARN do IAM role que o Redshift usa para acessar o S3 para armazenamento temporário de dados.

temporary_aws_access_key_id

ID da key de acesso temporária da AWS para o ambiente de preparação S3. Preferível a credenciais de longa duração.

temporary_aws_secret_access_key

Chave de acesso secreta temporária da AWS para o ambiente de preparação S3.

temporary_aws_session_token

Token de sessão temporário da AWS para zoneamento S3.

forward_spark_s3_credentials

Se true, encaminha as credenciais S3 do Spark para o Redshift para preparo. Use apenas quando o Spark e o Redshift compartilharem as mesmas credenciais S3. default: false.

Comportamento de escrita

As seguintes opções controlam como os dados são gravados na tabela do Redshift de destino, incluindo distribuição, chaves de classificação e formato de preparação.

Opção

Descrição

dbtable

Nome da tabela de destino. Suporta nomes qualificados por esquema (por exemplo, myschema.mytable).

batchsize

Número de linhas por inserção em lote. default: 1000.

numPartitions

Número de partições do Spark para operações de gravação paralelas.

queryTimeout

Tempo máximo em segundos para aguardar a conclusão de uma consulta.

isolationLevel

Nível de isolamento de transação: NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ ou SERIALIZABLE. default: READ_UNCOMMITTED.

diststyle

Estilo de distribuição do Redshift: EVEN, KEY ou ALL.

distkey

Coluna a ser usada como chave de distribuição. É necessário quando diststyle for KEY.

sortkeyspec

Especificação da chave de classificação para a tabela Redshift (por exemplo, SORTKEY(col1, col2)).

csvnullstring

String escrita em arquivos CSV de preparação para representar valores de NULL. Default: string vazia.

tempformat

Formato de arquivo de preparação: CSV ou AVRO. Default: CSV.

truncate

Se true, trunca a tabela de destino no modo overwrite em vez de descartá-la e recriá-la. Default: false.

Gravar em PostgreSQL no compute serverless

Este exemplo usa o modo append e recupera as credenciais de um Secret Scope do Databricks.

Python
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

  • Spark fonte de dados: instruções de configuração, exemplos de código e uma comparação de estratégias de integração do Spark.
  • Conexão JDBC: Use uma conexão do Unity Catalog com um driver JDBC para opções não suportadas por conectores integrados em ambientes serverless, ou para fontes de dados sem um conector integrado.
  • Referência de opções da Spark API: Referência para o DataFrameReader, o DataFrameWriter e opções de transmissão para formatos de arquivo e fontes de transmissão.