Opções de gravação sem servidor para conectores empacotados

Ao gravar em uma fonte de dados externa usando um conector agrupado na computação sem servidor, há suporte apenas para um subconjunto de opções de conector. As tabelas a seguir listam as opções com suporte por conector.

Para obter instruções de instalação e exemplos, consulte as fontes de dados do Spark.

PostgreSQL

As opções a seguir têm suporte ao gravar no PostgreSQL na computação sem servidor.

Opção Descrição
host Nome do host do servidor PostgreSQL.
port Número da porta. Padrão: 5432.
database Nome do banco de dados ao qual se conectar.
connectTimeout Tempo máximo em segundos para aguardar uma conexão. 0 desabilita o tempo limite.
user Nome de usuário do banco de dados.
password Senha do banco de dados.
dbtable Nome da tabela de destino. Dá suporte a nomes qualificados por esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a serem inseridas por lote. Padrão: 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 desabilita o tempo limite.
isolationLevel Nível de isolamento da transação: NONE, , READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, truncará a tabela de destino no overwrite modo em vez de removê-la e recriá-la. Padrão: false.
cascadeTruncate Se true, o truncamento será em cascata para tabelas com referências de chave estrangeira à tabela de destino. Padrão: false.

SQL Server

Há suporte para as opções a seguir ao gravar em SQL Server na computação sem servidor.

Opção Descrição
host Nome do host da instância de SQL Server.
port Número da porta. Padrão: 1433.
database Nome do banco de dados ao qual se conectar.
connectionTimeout Tempo máximo em segundos para aguardar uma conexão. 0 desabilita o tempo limite.
encrypt Se true, criptografa todos os dados enviados entre o cliente e o servidor usando TLS. Padrão: false.
trustServerCertificate Se true, confiará no certificado TLS do servidor sem validação. Somente para ambientes de desenvolvimento. Padrão: false.
debug Se true, habilita o log de depuração detalhado para o conector. Padrão: false.
user Nome de usuário do banco de dados.
password Senha do banco de dados.
authentication Tipo de autenticação. Valores com suporte: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI.
dbtable Nome da tabela de destino. Dá suporte a nomes qualificados por esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a serem inseridas por lote. Padrão: 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 desabilita o tempo limite.
isolationLevel Nível de isolamento da transação: NONE, , READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, truncará a tabela de destino no overwrite modo em vez de removê-la e recriá-la. Padrão: false.

MySQL

As opções a seguir têm suporte ao gravar no MySQL na computação sem servidor.

Opção Descrição
host Nome do host do servidor MySQL.
port Número da porta. Padrão: 3306.
database Nome do banco de dados ao qual se conectar.
connectionTimeout Tempo máximo em segundos para aguardar uma conexão. 0 desabilita o tempo limite.
requireSSL Se true, requer uma conexão criptografada com SSL com o servidor. Padrão: false.
useSSL Se true, habilita o SSL para a conexão quando compatível com o servidor. Padrão: false.
user Nome de usuário do banco de dados.
password Senha do banco de dados.
dbtable Nome da tabela de destino. Dá suporte a nomes qualificados por esquema (por exemplo, myschema.mytable).
batchsize Número de linhas a serem inseridas por lote. Padrão: 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 desabilita o tempo limite.
isolationLevel Nível de isolamento da transação: NONE, , READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
truncate Se true, truncará a tabela de destino no overwrite modo em vez de removê-la e recriá-la. Padrão: false.
cascadeTruncate Se true, o truncamento será em cascata para tabelas com referências de chave estrangeira à tabela de destino. Padrão: false.

Snowflake

As seções a seguir listam as opções com suporte para o conector Snowflake, organizado por função.

Conexão

As opções a seguir configuram a conexão com o Snowflake e o comportamento da sessão de controle.

Opção Descrição
host Nome do 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 (senha), oauth (token) ou snowflake_jwt (par de chaves). Padrão: 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 execução prolongada. Padrão: false.
ocspfailopen Se true, permite que as conexões prossigam quando a validação do certificado OCSP não estiver disponível (modo de fail-open). Padrão: true.

Authentication

As opções a seguir fornecem credenciais para o método de autenticação configurado em sfauthenticator. As credenciais de preparo (temporary_aws_*, awsaccesskey, ) temporary_azure_sas_tokensã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 snowflake.
sfpassword Senha de floco de neve. Usado quando sfauthenticator é snowflake.
sfToken Token de acesso OAuth. Usado quando sfauthenticator é oauth.
pem_private_key Chave privada no formato PEM para autenticação de par de chaves. Usado quando sfauthenticator é snowflake_jwt.
temporary_aws_access_key_id ID de chave de acesso temporária do AWS para preparo S3. Preferencialmente awsaccesskey ao usar credenciais de curta duração.
temporary_aws_secret_access_key Chave de acesso secreta temporária do AWS para preparo S3.
temporary_aws_session_token Token de sessão temporário do AWS para preparo S3.
temporary_azure_sas_token Token SAS Azure temporário para preparo de Armazenamento de Blobs do Azure.
awsaccesskey Chave de acesso AWS para preparo S3.
awssecretkey Chave secreta do AWS para preparo S3.

Target

As opções a seguir especificam o banco de dados snowflake, esquema, warehouse e tabela para gravar.

Opção Descrição
sfdatabase Nome do banco de dados snowflake.
sfschema Nome do esquema floco de neve.
sfwarehouse Depósito virtual snowflake usado para execução de consulta.
sfrole Função floco de neve para a sessão.
dbtable Nome da tabela de destino.

Comportamento de gravação

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

Opção Descrição
column_mapping Como as colunas DataFrame são correspondidas às colunas da tabela Snowflake: name (por nome da coluna) ou position (por ordem de coluna). Padrão: name.
column_mismatch_behavior Comportamento quando o DataFrame e as colunas de tabela não se alinham: error ou ignore. Padrão: error.
truncate_table Se true, truncará a tabela de destino antes de escrever. Padrão: false.
usestagingtable Se true, fases de dados em uma tabela temporária antes de trocar para o destino, habilitando gravações 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, envia por push as operações de filtragem e agregação para o Snowflake para execução. Padrão: true.

Redshift

As seções a seguir listam as opções com suporte para o conector do Redshift, organizado por função.

Conexão

As opções a seguir configuram a conexão com o cluster redshift.

Opção Descrição
host Nome do host do ponto de extremidade do cluster do Redshift.
port Número da porta. Padrão: 5439.
database Nome do banco de dados do Redshift.
connectionTimeout Tempo máximo em segundos para aguardar uma conexão.

Authentication

As opções a seguir configuram as credenciais para o Redshift e para o local de preparo S3 que o Redshift usa durante operações de gravação.

Opção Descrição
user Nome de usuário do Redshift.
password Senha do Redshift.
aws_iam_role ARN da função IAM que o Redshift usa para acessar o S3 para dados de preparo.
temporary_aws_access_key_id ID de chave de acesso temporária do AWS para preparo S3. Preferencial em relação às credenciais de longa duração.
temporary_aws_secret_access_key Chave de acesso secreta temporária do AWS para preparo S3.
temporary_aws_session_token Token de sessão temporário do AWS para preparo S3.
forward_spark_s3_credentials Se true, encaminha as credenciais do Spark S3 para o Redshift para preparo. Use somente quando Spark e Redshift compartilharem as mesmas credenciais S3. Padrão: false.

Comportamento de gravação

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

Opção Descrição
dbtable Nome da tabela de destino. Dá suporte a nomes qualificados por esquema (por exemplo, myschema.mytable).
batchsize Número de linhas por inserção em lote. Padrão: 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 da transação: NONE, , READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READou SERIALIZABLE. Padrão: READ_UNCOMMITTED.
diststyle Estilo de distribuição do Redshift: EVEN, KEYou ALL.
distkey Coluna a ser usada como a chave de distribuição. Necessário quando diststyle é KEY.
sortkeyspec Especificação de chave de classificação para a tabela redshift (por exemplo, SORTKEY(col1, col2)).
csvnullstring Cadeia de caracteres escrita em arquivos CSV de preparo para representar NULL valores. Padrão: cadeia de caracteres vazia.
tempformat Formato de arquivo de preparo: CSV ou AVRO. Padrão: CSV.
truncate Se true, truncará a tabela de destino no overwrite modo em vez de removê-la e recriá-la. Padrão: false.

Gravar no PostgreSQL na computação sem servidor

Este exemplo usa o append 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()

Próximas Etapas 

  • Fontes de dados do Spark: instruções de instalaçã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 Catálogo do Unity com um driver JDBC para opções sem suporte por conectores empacotados em fontes de dados sem servidor ou para fontes de dados sem um conector agrupado.
  • Referência de opções de API do Spark: referência para DataFrameReader, DataFrameWriter e opções de streaming para formatos de arquivo e fontes de streaming.