Referência de opções do Node.js¶
Ao construir um novo objeto Connection
, você passa um objeto JavaScript que especifica as opções para a conexão (por exemplo, o identificador de sua conta, seu nome de usuário, etc.). As seções seguintes descrevem as opções que você pode definir. Para definir uma opção, especifique o nome da opção como o nome da propriedade no objeto JavaScript.
Opções de conexão
Outras opções
Opções de conexão necessárias¶
account
region
(Obsoleto)A ID para a região onde sua conta está localizada.
Nota
Esta opção é obsoleta e está incluída aqui apenas para compatibilidade retroativa. O Snowflake recomenda a transição para incorporar a região no identificador de conta, como descrito em Uso de um localizador de contas como identificador, como a seguir.
var connection = snowflake.createConnection({ account: "myaccount.us-east-2", username: "myusername", password: "mypassword" });
Além disso, é necessário especificar as opções para autenticação no servidor.
Opções de autenticação¶
application
Especifica o nome do aplicativo do cliente que conecta ao Snowflake.
authenticator
Especifica o autenticador a ser usado para verificar as credenciais de login de usuário. Você pode definir isto para um dos seguintes valores:
Valor
Descrição
SNOWFLAKE
Use o autenticador interno do Snowflake. Você também deve definir a opção
password
.EXTERNALBROWSER
Use seu navegador para autenticar com Okta, AD FS ou qualquer outro provedor de identidade compatível com SAML 2.0 (IdP) que tenha sido definido para sua conta.
https://<nome_conta_okta>.okta.com
OAUTH
Use OAuth para autenticação. Você também deve definir a opção
token
para o token OAuth (consulte abaixo).SNOWFLAKE_JWT
Use autenticação de par de chaves. Consulte Uso de autenticação de pares de chaves e rotação de pares de chaves.
O valor padrão é
SNOWFLAKE
.Para obter mais informações sobre autenticação, consulte Gerenciamento/uso da autenticação federada e Clientes, drivers e conectores.
username
O nome de login para seu usuário Snowflake ou seu provedor de identidade (por exemplo, seu nome de login para Okta). Defina esta opção se você definir a opção
authenticator
comoSNOWFLAKE
,SNOWFLAKE_JWT
ou o ponto de extremidade do URL Okta para sua conta Okta (por exemplo,https://<nome_conta_okta>.okta.com
). Se você não definir a opçãoauthenticator
, deverá definir esse valor.password
Senha do usuário. Defina esta opção se você definir a opção
authenticator
paraSNOWFLAKE
ou o ponto de extremidade da URL Okta para sua conta Okta (por exemplo,https://<nome_conta_okta>.okta.com
) ou se você deixar a opçãoauthenticator
por definir.
token
Especifica o token OAuth a ser usado para autenticação. Defina esta opção se você definir a opção
authenticator
paraOAUTH
.privateKey
Especifica a chave privada (em formato PEM) para autenticação do par de chaves. Para obter mais detalhes, consulte Uso de autenticação de pares de chaves e rotação de pares de chaves.
privateKeyPath
Especifica o caminho local para o arquivo de chave privada (por exemplo,
rsa_key.p8
). Para obter mais detalhes, consulte Uso de autenticação de pares de chaves e rotação de pares de chaves.privateKeyPass
Especifica a senha para descriptografar o arquivo de chave privada, se o arquivo estiver criptografado. Para obter mais detalhes, consulte Uso de autenticação de pares de chaves e rotação de pares de chaves.
Opções adicionais de conexão¶
accessUrl
Especifica um ponto de extremidade totalmente qualificado para a conexão com o Snowflake. O
accessUrl
inclui o esquema completo e o host, assim como um número de porta opcional, semelhante aohttps://myaccount.us-east-1.snowflakecomputing.com
.Nota
Ao utilizar a opção
accessUrl
, o valor especificado na opçãoaccount
não é utilizado.browserActionTimeout
Especifica o tempo limite, em milissegundos, para atividades do navegador relacionadas à autenticação SSO. O valor padrão é 120000 (milissegundos).
clientSessionKeepAlive
Por padrão, as conexões do cliente normalmente atingem o tempo limite cerca de 3-4 horas depois que a consulta mais recente foi executada.
Se a opção
clientSessionKeepAlive
estiver definida comotrue
, a conexão do cliente com o servidor será mantida indefinidamente, mesmo que nenhuma consulta seja executada.A configuração padrão desta opção é
false
.Se você definir esta opção como
true
, certifique-se de que seu programa se desconecte explicitamente do servidor quando tiver terminado. Não saia sem desconectar.clientSessionKeepAliveHeartbeatFrequency
(Aplica-se somente quando
clientSessionKeepAlive
é verdadeiro)Define a frequência (intervalo em segundos) entre as mensagens de pulsação.
Pense em uma mensagem de pulsação da conexão como um substituto para uma consulta que reinicia a contagem regressiva do tempo limite para a conexão. Em outras palavras, se o tempo limite da conexão ocorrer após pelo menos 4 horas de inatividade, a pulsação redefine o timer para que o tempo limite não ocorra até pelo menos 4 horas após a pulsação mais recente (ou consulta).
O valor padrão é 3600 segundos (uma hora). O intervalo válido de valores é 900 - 3600. Como o tempo limite normalmente ocorre após pelo menos 4 horas, uma pulsação a cada 1 hora normalmente é suficiente para manter a conexão ativa. Intervalos de pulsação de menos de 3600 segundos raramente são necessários ou úteis.
database
O banco de dados padrão a ser utilizado para a sessão após a conexão.
host
Endereço de host ao qual o driver deve se conectar.
keepAlive
Especifica se a funcionalidade keep-alive deve ser habilitada no soquete imediatamente após receber uma nova solicitação de conexão.
Por padrão, o protocolo HTTP cria uma nova conexão TCP para cada solicitação. Habilitar esse parâmetro permite que o driver reutilize conexões para diversas solicitações em vez de criar novas conexões para cada solicitação.
O valor padrão é
true
.noProxy
Especifica as listas de hosts aos quais o driver deve se conectar diretamente, ignorando o servidor proxy (por exemplo,
*.amazonaws.com
para fazer o bypass do acesso do Amazon S3). Para hosts múltiplos, separe os nomes do host com um símbolo de canal (|
). Você também pode usar um asterisco como curinga. Por exemplo:noProxy: "*.amazonaws.com|*.my_company.com"
proxyHost
Especifica o nome do host de um servidor proxy autenticado.
proxyPassword
Especifica a senha para o usuário especificada por
proxyUser
.proxyPort
Especifica a porta de um servidor proxy autenticado.
proxyProtocol
Especifica o protocolo usado para conectar ao servidor proxy autenticado. Use esta propriedade para especificar o protocolo HTTP:
http
ouhttps
.proxyUser
Especifica o nome de usuário usado para se conectar a um servidor proxy autenticado.
role
A função de segurança padrão a ser usada para a sessão após a conexão.
schema
O esquema padrão a ser usado para a sessão após a conexão.
timeout
Número de milissegundos para manter a conexão ativa sem resposta. Padrão: 60000 (1 minuto).
warehouse
O warehouse virtual padrão a ser utilizado para a sessão após a conexão. Utilizado para realizar consultas, carregar dados, etc.
Algumas opções de conexão consideram que o objeto de banco de dados especificado (banco de dados, esquema, warehouse ou função) já existe no sistema. Se o objeto especificado não existir, não é definido um padrão durante a conexão.
Após a conexão, todas as opções opcionais de conexão também podem ser definidas ou substituídas através do comando USE <objeto>.
Opções de configuração¶
arrayBindingThreshold
Define o número máximo de vinculações que o driver utiliza em uma operação de inserção em massa. O valor padrão é 100000 (100K).
resultPrefetch
Número de threads a serem utilizados pelos clientes para pré-buscar grandes conjuntos de resultados. Valores válidos: 1-10.
rowMode
Especifica como retornar resultados que contenham nomes de colunas duplicados. Os valores incluem:
array
: retorna o conjunto de resultados como uma matriz, incluindo nomes de colunas duplicados.object
: retorna o conjunto de resultados como um objeto, omitindo nomes de colunas duplicados.object_with_renamed_duplicated_columns
: retorna o conjunto de resultados como um objeto, ao mesmo tempo que adiciona sufixos a nomes duplicados para torná-los únicos.
O valor padrão é
object
.
Opções de xmlParserConfig¶
A partir da versão 1.7.0 do driver, você pode usar as seguintes opções de configuração da biblioteca fast-xml-parser para personalizar como o driver processa os atributos do documento XML ao consultar colunas com conteúdo XML.
Por padrão, o driver Node.js ignora os atributos do elemento XML ao retornar dados XML de uma consulta. Por exemplo, no conteúdo XML a seguir, o elemento <animal>
inclui um atributo id
:
<exhibit name="Polar Bear Plunge">
<animal id="000001">
<scientificName>Ursus maritimus</scientificName>
<englishName>Polar Bear</englishName>
<name>Kalluk</name>
</animal>
<animal id="000002">
<scientificName>Ursus maritimus</scientificName>
<englishName>Polar Bear</englishName>
<name>Chinook</name>
</animal>
</exhibit>
Por padrão, quando o driver Node.js retorna o conjunto de resultados, ele ignora o atributo id
e retorna a saída a seguir. Observe que os nomes e valores dos atributos não estão incluídos.
{
exhibit: {
animal: [
{
"scientificName": "Ursus maritimus",
"englishName": "Polar Bear",
"name": "Kalluk",
},
{
"scientificName": "Ursus maritimus",
"englishName": "Polar Bear",
"name": "Chinook"
}
]
}
}
Para obter informações sobre como definir essas opções, consulte Análise de dados XML.
Para ajudar a ilustrar como as opções a seguir afetam o modo como o driver analisa os dados XML, cada descrição de opção mostra como isso afeta este exemplo.
ignoreAttributes
Se deve ignorar atributos XML durante a análise. Se quiser usar as outras opções do analisador, você deverá definir
ignoreAttributes: false
.Padrão:
true
Quando definido como
false
, o driver retorna a saída da seguinte forma. Observe que o atributoid
agora está incluído na saída (por padrão, o driver adiciona um prefixo@_
aos nomes dos atributos):{ exhibit: { animal: [ { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk", "@_id": "000001" }, { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook", "@_id": "000002" } ], "@_name": "Polar Bear Plunge" } }
alwaysCreateTextNode
Se deseja criar uma propriedade com o nome da tag e atribuir o valor diretamente.
Padrão:
false
Quando definido como
true
, o driver retorna a saída da seguinte forma:{ exhibit: { animal: [ { "scientificName": { "#text": "Ursus maritimus" }, "englishName": { "#text": "Polar Bear" }, "name": { "#text": "Kalluk" }, "@_id": "000001" }, { "scientificName": { "#text": "Ursus maritimus" }, "englishName": { "#text": "Polar Bear" }, "name": { "#text": "Chinook" }, "@_id": "000002" } "@_name": "Polar Bear Plunge" ] } }
attributeNamePrefix
Cadeia de caracteres a ser anexada aos nomes de atributos.
Padrão: «@_»
Quando definido como
""
para não especificar nenhum prefixo para nomes de atributos, o driver retorna a saída da seguinte forma:{ exhibit: { animal: [ { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk", "id": "000001" }, { "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook", "id": "000002" } ], "name": "Polar Bear Plunge" } }
attributesGroupName
Agrupa todos os atributos de uma tag sob um nome de propriedade especificado.
Padrão: não definido
Quando definido como
@@
para agrupar todos os atributos de tag em um elemento chamado@@,
, o driver retorna a saída da seguinte forma:{ exhibit: { "@@": { "@_name": "Polar Bear Plunge" } animal: [ { "@@": { "@_id": "000001" }, "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Kalluk" }, { "@@": { "@_id": "000002" }, "scientificName": "Ursus maritimus", "englishName": "Polar Bear", "name": "Chinook" } ] } }