snow sql¶
Executa a consulta Snowflake. Use a opção de consulta, nome de arquivo ou entrada. A consulta a ser executada pode ser especificada usando a opção de consulta, opção de nome de arquivo (todas as consultas do arquivo serão executadas) ou via stdin, canalizando a saída de outro comando. Por exemplo cat my.sql | snow sql -i
. O comando oferece suporte à substituição de variáveis que acontece no lado do cliente.
Sintaxe¶
snow sql
--query <query>
--filename <files>
--stdin
--variable <data_override>
--project <project_definition>
--env <env_overrides>
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-file <private_key_file>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
Argumentos¶
Nenhum
Opções¶
--query, -q TEXT
Consulta a ser executada.
--filename, -f FILE
Arquivo a ser executado. Padrão: [].
--stdin, -i
Leia a consulta da entrada padrão. Use-a ao canalizar a entrada para este comando. Padrão: falso.
--variable, -D TEXT
Cadeia de caracteres no formato chave=valor. Se fornecido, o conteúdo SQL será tratado como modelo e renderizado usando os dados fornecidos.
-p, --project TEXT
Caminho onde o projeto Snowflake está. O padrão é o diretório de trabalho atual.
--env TEXT
Cadeia de caracteres no formato chave=valor. Substitui variáveis da seção env usadas para modelos. Padrão: [].
--connection, -c, --environment TEXT
Nome da conexão, conforme definido no arquivo
config.toml
. Padrão:padrão
.--host TEXT
Endereço do host da conexão. Substitui o valor especificado para a conexão.
--port INTEGER
Porta para a conexão. Substitui o valor especificado para a conexão.
--account, --accountname TEXT
Nome atribuído à sua conta Snowflake. Substitui o valor especificado para a conexão.
--user, --username TEXT
Nome de usuário para se conectar ao Snowflake. Substitui o valor especificado para a conexão.
--password TEXT
Senha do Snowflake. Substitui o valor especificado para a conexão.
--authenticator TEXT
Autenticador Snowflake. Substitui o valor especificado para a conexão.
--private-key-file, --private-key-path TEXT
Caminho do arquivo de chave privada Snowflake. Substitui o valor especificado para a conexão.
--token-file-path TEXT
Caminho para o arquivo com um token OAuth que deve ser usado ao conectar-se ao Snowflake.
--database, --dbname TEXT
Banco de dados a ser usado. Substitui o valor especificado para a conexão.
--schema, --schemaname TEXT
Esquema de banco de dados a ser usado. Substitui o valor especificado para a conexão.
--role, --rolename TEXT
Função a ser usada. Substitui o valor especificado para a conexão.
--warehouse TEXT
Warehouse a ser usado. Substitui o valor especificado para a conexão.
--temporary-connection, -x
Usa conexão definida com parâmetros de linha de comando, em vez de uma definida na configuração. Padrão: falso.
--mfa-passcode TEXT
Token a ser usado para autenticação multifator (MFA).
--enable-diag
Execução do teste de diagnóstico do conector Python. Padrão: falso.
--diag-log-path TEXT
Caminho do relatório de diagnóstico. Padrão: <temporary_directory>.
--diag-allowlist-path TEXT
Caminho do relatório de diagnóstico para a lista de permissões opcional.
--format [TABLE|JSON]
Especifica o formato de saída. Padrão: TABLE.
--verbose, -v
Exibe entradas de log para níveis de log
info
e superior. Padrão: falso.--debug
Exibe entradas de log para níveis de log de
depuração
e superiores; os logs de depuração contêm informações adicionais. Padrão: falso.--silent
Desliga a saída intermediária para o console. Padrão: falso.
--help
Exibe o texto de ajuda para este comando.
Notas de uso¶
Você pode especificar a consulta SQL para execução usando uma das seguintes opções
Especifique a cadeia de caracteres de consulta usando a opção
--query
.Use a opção
--filename
para especificar um arquivo com a consulta ou consultas SQL a serem executadas.Especifique a consulta como
stdin
e canal para o comandosnow sql
, comocat my.sql | snow sql
.Se sua consulta contiver caracteres especiais, como o cifrão em funções SYSTEM, que você não quer que o shell interprete, você pode fazer qualquer um dos seguintes:
Coloque a consulta entre aspas simples em vez de aspas duplas, como em:
snow sql -q 'SELECT SYSTEM$CLIENT_VERSION_INFO()'
Escape do caractere especial, como em:
snow sql -q "SELECT SYSTEM\$CLIENT_VERSION_INFO()"
Use variáveis para modelar consultas SQL com a combinação de um espaço reservado
<% variable_name %>
em suas consultas SQL e uma opção de linha de comando-D
, no formato:snow sql -q "select * from my-database order by <% column_name %>" -D "column_name=Country"
Nota
Atualmente, é possível usar a sintaxe SnowSQL
&variable_name
e<% variable_name %>
para modelos. Entretanto, a Snowflake recomenda usar a sintaxe<% variable_name %>
.
Exemplos¶
O exemplo a seguir usa a função SQL SYSTEM$CLIENT_VERSION_INFO do sistema para retornar informações de versão sobre clientes e drivers.
snow sql --query 'SELECT SYSTEM$CLIENT_VERSION_INFO();'
select current_version(); +-------------------+ | CURRENT_VERSION() | |-------------------| | 8.25.1 | +-------------------+
O exemplo a seguir mostra como você pode especificar um banco de dados usando uma variável do lado do cliente:
snow sql -q "select * from <% database %>.logs" -D "database=dev"
Quando executado, o comando substitui o valor
dev
na variável<% database %>
para criar o identificadordev.logs
e então envia a consulta SQLselect * from dev.logs
para processamento no Snowflake.Nota
Atualmente, você pode usar a sintaxe SnowSQL
&variable_name
e &{ variable_name }
para modelos. Entretanto, a Snowflake recomenda usar a sintaxe<% variable_name %>
.Este exemplo mostra como passar variáveis de ambiente usando a opção
--env
:snow sql -q "select '<% ctx.env.test %>'" --env test=value_from_cli