Redirecionamento de conexões do cliente¶
O Redirecionamento do cliente permite redirecionar suas conexões de clientes para contas Snowflake em diferentes regiões para continuidade de negócios e recuperação de desastres, ou ao migrar sua conta para outra região ou plataforma de nuvem.
Neste tópico:
Introdução ao Redirecionamento do cliente¶
O Redirecionamento do cliente é implementado através de um objeto de conexão do Snowflake. O objeto de conexão armazena uma URL de conexão segura que você usa com um cliente Snowflake para se conectar ao Snowflake.
O nome de host na URL da conexão é composto pelo nome de sua organização e o nome do objeto de conexão, além de um nome de domínio comum:
organization_name-connection_name.snowflakecomputing.com
Observe que este nome de host não especifica a conta à qual você está se conectando. Um administrador de conta determina a conta a ser usada designando a conexão nessa conta para servir como a conexão primária. Quando você usa a URL da conexão para conectar-se ao Snowflake, está se conectando à conta que contém a conexão primária.
Se ocorrer uma interrupção em uma região ou plataforma de nuvem e a interrupção afetar a conta com a conexão primária, o administrador pode promover uma conexão em uma conta diferente em uma região ou plataforma de nuvem diferente para servir como a conexão primária.
Durante desta interrupção, você pode continuar a usar a mesma URL de conexão para se conectar ao Snowflake. O Snowflake resolve a URL da conexão à conta com a nova conexão promovida (a conta fora da região ou plataforma de nuvem afetada pela interrupção).
Nota
As contas Snowflake que armazenam as conexões primária e secundária devem ser hospedadas em diferentes regiões.
Fluxo do Redirecionamento do cliente¶
Complete as etapas em Configuração do Redirecionamento do cliente (neste tópico) para criar uma URL de conexão para conexões de clientes. Isto inclui a criação de uma conexão primária e conexões secundárias vinculadas.
Atualize clientes Snowflake para se conectar usando a URL de conexão. Uso de uma URL de conexão (neste tópico) contém uma lista de clientes com suporte e detalhes de conexão.
No caso de uma interrupção de serviço na região onde a conexão primária está localizada, complete as etapas em Redirecionamento de conexões do cliente (neste tópico) para atualizar a URL da conexão para redirecionar para uma conexão secundária.
Quando a interrupção for resolvida, complete as etapas em Redirecionamento de conexões do cliente para redirecionar as conexões do cliente de volta para a conexão primária original.
Os diagramas a seguir ilustram o fluxo do Redirecionamento do cliente para duas contas na mesma organização mas em regiões diferentes (Region A
e Region B
) na mesma ou em plataformas de nuvem diferentes.
A conexão primária está em Account 1
em Region A
. Clientes Snowflake usando a URL da conexão se conectam a Account 1
.
Uma interrupção de serviço em Region A
resulta em falhas nas conexões de clientes:
A conexão em Account 2
em Region B
é promovida para atuar como a conexão primária. Clientes Snowflake usando a URL da conexão agora se conectam a Account 2
.
Exemplo¶
As seguintes instruções SQL passam pelo fluxo de trabalho de redirecionamento do cliente. Cada etapa é explicada em detalhes nas seções que se seguem neste tópico.
Conexões de cliente normais: configurar o Redirecionamento do cliente¶
Criação de uma conexão primária na conta de origem¶
Crie uma nova conexão primária e permita o failover para outras contas em sua organização. Cada conta que é habilitada para failover deve estar em uma região diferente da conta com a conexão primária.
Observe a coluna account_name
na saída de SHOW REPLICATION ACCOUNTS para cada conta a ser habilitada para failover.
Execute as seguintes instruções na conta de origem:
-- Create a new primary connection
CREATE CONNECTION myconnection;
-- View accounts in your organization that are enabled for replication
SHOW REPLICATION ACCOUNTS;
-- Configure failover accounts for the primary connection
ALTER CONNECTION myconnection
ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
-- View the details for the connection
SHOW CONNECTIONS;
Se a conectividade privada ao serviço Snowflake estiver habilitada para sua conta Snowflake, você deve criar e gerenciar um registro DNS CNAME para sua URL de conexão. Para obter mais detalhes, consulte Configuração das definições de DNS para conectividade privada com o serviço do Snowflake.
Executado na conta de destino¶
Crie uma conexão secundária ligada à conexão primária. O nome da conexão secundária deve ser o mesmo nome da conexão primária.
CREATE CONNECTION myconnection
AS REPLICA OF myorg.myaccount1.myconnection;
Se a conectividade privada ao serviço Snowflake estiver habilitada para sua conta Snowflake, você deve criar ou atualizar um registro DNS CNAME para sua URL de conexão. Para obter mais detalhes, consulte Modificação das configurações DNS para conectividade privada com o serviço Snowflake.
Interrupção na região de origem: failover¶
Se ocorrer uma interrupção na região onde a conexão primária está localizada, promova uma conexão secundária em uma região diferente para servir como conexão primária.
Executado na conta de destino¶
ALTER CONNECTION myconnection PRIMARY;
Se a conectividade privada ao serviço Snowflake estiver habilitada para sua conta Snowflake, você deve criar ou atualizar um registro DNS CNAME para sua URL de conexão. Para obter mais detalhes, consulte Modificação das configurações DNS para conectividade privada com o serviço Snowflake.
Interrupção resolvida: failback¶
Uma vez resolvido o problema, promova a conexão primária original para servir novamente como a conexão primária.
Executado na conta de origem¶
Execute o seguinte comando da conta com a conexão que você deseja promover para primária:
ALTER CONNECTION myconnection PRIMARY;
Se a conectividade privada ao serviço Snowflake estiver habilitada para sua conta Snowflake, você deve criar ou atualizar um registro DNS CNAME para sua URL de conexão. Para obter mais detalhes, consulte Modificação das configurações DNS para conectividade privada com o serviço Snowflake.
Configuração do Redirecionamento do cliente¶
Esta seção descreve como criar uma conexão primária e uma ou mais conexões secundárias em um grupo de conexões.
Pré-requisito¶
Para habilitar o recurso Client Redirect para suas contas, um administrador da organização (um usuário com a função ORGADMIN) deve habilitar a replicação para duas ou mais contas. Para permitir a replicação, consulte Pré-requisito: Habilitar a replicação para contas na organização para obter instruções detalhadas.
Criação de uma conexão primária¶
Importante
O Snowflake atribuiu à sua organização um nome único e gerado quando ela foi criada no sistema. O nome da organização é uma parte da URL de conexão definida em um objeto de conexão e apresentada pelos clientes Snowflake para acessar uma conta. Antes de criar qualquer objeto de conexão, verifique se o nome de sua organização no Snowflake é satisfatório. Para mudar o nome de sua organização no sistema, contate o suporte Snowflake.
Você pode criar uma conexão primária na conta de origem usando Snowsight ou SQL.
Criação de uma conexão primária e secundária usando Snowsight¶
Para criar uma conexão usando Snowsight, conclua as seguintes etapas:
Nota
Somente um usuário com a função ACCOUNTADMIN pode criar uma conexão usando Snowsight.
Você deve estar conectado à conta de destino como um usuário com a função ACCOUNTADMIN. Caso contrário, você será solicitado a fazer login.
Entre em Snowsight e navegue até Admin » Accounts.
Selecione Client Redirect.
Selecione + Connection.
Selecione Target Account.
Na caixa Connection Name, insira um nome de conexão que atenda aos seguintes requisitos:
Deve começar com um caractere alfabético e só pode conter letras, dígitos decimais (0-9) e sublinhados (_).
Deve ser único entre os nomes das conexões e os nomes das contas na organização.
Selecione Create Connection.
Criação de uma conexão primária usando SQL¶
Nota
Somente um usuário com a função ACCOUNTADMIN pode executar os comandos SQL nesta seção.
Crie uma nova conexão primária usando o comando CREATE CONNECTION. O nome de cada conexão primária deve ser único em todos os nomes de conexão e conta na organização.
O nome da conexão está incluído como parte da URL de conexão usada para conectar a contas Snowflake.
Por exemplo, para criar uma conexão chamada
myconnection
:CREATE CONNECTION myconnection;
Modifique esta conexão primária usando uma instrução ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS. Forneça uma lista de contas separadas por vírgula em sua organização que possam armazenar uma opção de failover para esta conexão (ou seja, uma conexão secundária).
Qualquer conta que armazene uma conexão secundária deve ser hospedada em uma região diferente da conta que armazena a conexão primária. O Redirecionamento do cliente só opera com sucesso em diferentes regiões. Por exemplo, se você tentar redirecionar as conexões do cliente de
account1
paraaccount2
na mesma região, o redirecionamento do cliente não funciona.Para ver a lista completa das contas em sua organização que estão habilitadas para replicação, execute SHOW REPLICATION ACCOUNTS.
Por exemplo, permita que cada uma das contas
myaccount2
emyaccount3
na organizaçãomyorg
armazenem uma conexão secundária para a conexãomyconnection
:ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
Execute o comando SHOW CONNECTIONS para visualizar os detalhes da conexão.
SHOW CONNECTIONS; +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+ | snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator | |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------| | AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Criação de uma conexão secundária¶
Crie uma conexão secundária em uma ou mais contas, vinculada a uma conexão primária usando CREATE CONNECTION … AS REPLICA OF. Note que você só pode criar uma conexão secundária em uma conta especificada na instrução ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS em Criação de uma conexão primária.
Execute uma instrução CREATE CONNECTION … AS REPLICA OF em cada conta de destino para criar uma réplica da conexão primária especificada.
Importante
Cada conexão secundária precisa ter o mesmo nome que sua conexão primária. O nome da conexão está incluído na URL de conexão.
Execute as instruções SQL desta seção na conta de destino onde você deseja criar uma conexão secundária.
Nota
Somente um usuário com a função ACCOUNTADMIN pode executar os comandos SQL nesta seção.
Execute o comando SHOW CONNECTIONS para visualizar todas as conexões. Copie o valor da coluna
primary
para a conexão primária. Você usará este valor ao criar a conexão secundária na próxima etapa.SHOW CONNECTIONS; +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+ | snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator | |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------| | AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Execute o comando CREATE CONNECTION … AS REPLICA OF para criar uma conexão secundária.
Por exemplo, crie uma conexão secundária chamada
myconnection
que está vinculada à conexão primáriamyorg.myaccount1.myconnection
. ApósAS REPLICA OF
, cole o nome totalmente qualificado da conexão primária (o nome que você copiou da saída SHOW CONNECTIONS na etapa anterior).CREATE CONNECTION myconnection AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
Execute o comando SHOW CONNECTIONS para verificar se a conexão secundária foi criada.
SHOW CONNECTIONS; +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+ | snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator | |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------| | AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 | | AWS_US_EAST_1 | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2 | MYCONNECTION | NULL | false | MYORG.MYACCOUNT1.MYCONNECTION | | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR2 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Configuração das definições de DNS para conectividade privada com o serviço do Snowflake¶
Se a conectividade privada ao serviço Snowflake estiver ativada para sua conta Snowflake, então seu administrador de rede deve criar e gerenciar um registro DNS para sua URL de conexão. O administrador da rede pode usar um registro CNAME, ou um registro de alias, com base na configuração da arquitetura de rede.
Para todas as outras contas, o Snowflake cria e gerencia o registro DNS. Para fins de consistência, o exemplo a seguir usa o registro CNAME.
Estas etapas usam AWS PrivateLink como exemplo, e as etapas são as mesmas se sua conta Snowflake usar o Azure Private Link ou o Google Cloud Private Service Connect:
Execute SHOW CONNECTIONS em uma de suas contas na qual o redirecionamento do cliente esteja habilitado. Por exemplo, suponha que AWS PrivateLink esteja habilitado para
myaccount1
emyaccount2
.SHOW CONNECTIONS; +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+ | snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator | |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------| | AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 | |--------------------|-------------------------------|---------------------|-------------------|-----------------|---------------|-------------------------------|-------------------------------------|-------------------------------------------|-------------------|-------------------| | AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 | | AWS_US_EAST_1 | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2 | MYCONNECTION | NULL | false | MYORG.MYACCOUNT1.MYCONNECTION | | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR2 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Observe que a saída deste comando na coluna CONNECTION_URL deve corresponder à lista
privatelink-connection-urls
ao chamar a função SYSTEM$GET_PRIVATELINK_CONFIG emmyaccount1
oumyaccount2
. Esta lista já contém a conexão URL formatada com o segmentoprivatelink
(como mostrado na próxima etapa). Opcionalmente, você pode executar o comando nesta etapa ou chamar a função. Se chamar a função, use os URLs como estão sem nenhuma outra modificação.Registre o valor da coluna CONNECTION_URL e crie duas URLs para oferecer suporte à conectividade privada e OCSP.
Adicione um segmento
privatelink
à URL logo antes desnowflakecomputing.com
(myorg-myconnection.privatelink.snowflakecomputing.com
, neste exemplo).Adicione um segmento
ocsp
ao início da URL (ocsp.myorg-myconnection.privatelink.snowflakecomputing.com
, neste exemplo).
Usando uma ferramenta fornecida por seu provedor de DNS, crie um registro CNAME para a URL de conexão e o URL OCSP.
Defina o domínio (ou alias) usando o valor modificado da coluna CONNECTION_URL.
Configure o registro para que a URL da conexão seja resolvida com a URL da conta Snowflake principal. Certifique-se de incluir todos os segmentos de URL para a região da nuvem e AWS PrivateLink com base no formato URL escolhido. Esta é a URL da conta principal e é para onde as conexões do cliente com a URL de conexão serão redirecionadas.
Configure o registro para que a URL OCSP resolva o endereço IP do ponto de extremidade privado para uma conta no Azure ou o valor do ID privado do ponto de extremidade para uma conta no AWS.
No caso de failover, você deve atualizar manualmente a configuração DNS para que a URL de conexão aponte para a URL da conta secundária conforme mostrado em Modificação das configurações DNS para conectividade privada com o serviço Snowflake. Da mesma forma, você deve atualizar suas configurações OCSP para apontar para o endereço IP do ponto de extremidade privado ou para o valor de ID do ponto de extremidade privado.
Por exemplo:
myaccount1.us-west-2.privatelink.snowflakecomputing.com. ocsp.myaccount1.us-west-2.privatelink.snowflakecomputing.com.
Alternativamente, use a URL da organização e nome da conta.
Por exemplo:
myorg-myaccount1.privatelink.snowflakecomputing.com. ocsp.myorg-myaccount1.privatelink.snowflakecomputing.com.
Observe o ponto final, que deve ser incluído.
Os usuários se conectam ao Snowflake usando o seguinte formato de URL de conexão:
organization_name-connection_name.privatelink.snowflakecomputing.com
Onde:
organization_name
Nome de sua organização no Snowflake. As contas Snowflake a que seus usuários se conectam estão contidas nesta organização.
connection_name
Nome do objeto de conexão.
Para obter mais informações, consulte:
Uso de uma URL de conexão (neste tópico).
Modificação das configurações DNS para conectividade privada com o serviço Snowflake (neste tópico).
Uso de uma URL de conexão¶
Esta seção fornece instruções para fazer referência à URL de conexão na configuração de vários clientes Snowflake.
Clientes Snowflake com suporte¶
O Redirecionamento do cliente tem suporte por Snowsight e Console clássico do Snowflake. Além disso, as seguintes versões de clientes Snowflake (e superiores) suportam o Redirecionamento do cliente:
Cliente Snowflake |
Versão mínima com suporte |
---|---|
SnowSQL |
1.1.82 |
Conector Snowflake para Python |
1.8.3 |
Driver Node.js |
1.2.0 |
Driver Go Snowflake |
1.2.0 |
Driver .NET |
1.0.0 |
Driver JDBC |
3.8.4 |
Driver ODBC |
2.19.4 |
Snowpark |
Todas as versões |
Configuração de clientes Snowflake¶
Use o seguinte nome de host para a URL de conexão quando se conectar ao Snowflake:
Nome do host:
organization_name-connection_name.snowflakecomputing.com
Onde:
organization_name
Nome de sua organização no Snowflake. As contas Snowflake a que seus usuários se conectam estão contidas nesta organização.
connection_name
Nome do objeto de conexão.
Importante
Conectividade privada com o serviço do Snowflake
Os clientes que utilizam conectividade privada ao serviço Snowflake precisam adicionar um segmento privatelink
à URL pouco antes do snowflakecomputing.com
:
organization_name-connection_name.privatelink.snowflakecomputing.com
Snowsight¶
Digite o seguinte no campo do nome da conta em app.snowflake.com:
<organization-name>-<connection-name>
Por exemplo:
myorg-myconnection
Ao usar organization-connection
para fazer login, o Snowsight navega para a região e localizador específicos da conexão primária atual. Durante uma interrupção, uma vez que a conexão tenha sido redirecionada, os usuários devem se conectar novamente via organization-connection
para se conectar à nova primária.
Console clássico do Snowflake¶
Digite a seguinte URL em um navegador da Web:
https://<organization_name>-<connection_name>.snowflakecomputing.com/
Por exemplo:
https://myorg-myconnection.snowflakecomputing.com/
SnowSQL¶
Especifique o nome do host para a URL de conexão no parâmetro de conexão accountname
no arquivo SnowSQL config
. Para obter mais informações sobre o arquivo config
, consulte Configuração do SnowSQL.
accountname = <organization_name>-<connection_name>
username = <username>
password = <password>
Por exemplo:
accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
Conector Snowflake para Python¶
Especifique o nome do host para a URL de conexão no parâmetro de conexão account
ao chamar a função de conexão. Para obter mais informações, consulte API do conector Python e Uso do conector Python.
con = snowflake.connector.connect (
account = <organization_name>-<connection_name>
user = <username>
password = <password>
)
Por exemplo:
con = snowflake.connector.connect (
account = myorg-myconnection
user = jsmith
password = mySecurePassword
)
Driver JDBC¶
Especifique o nome do host para a URL de conexão na cadeia de conexão. Para obter mais informações, consulte Configuração do driver JDBC.
jdbc:snowflake://<organization_name>-<connection_name>.snowflakecomputing.com/?user=<username>&password=<password>
Por exemplo:
jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
Driver ODBC¶
Especifique o nome do host para a URL de conexão no parâmetro de conexão de servidor. Para obter mais informações sobre os parâmetros de conexão, consulte Parâmetros de configuração e conexão do ODBC.
[ODBC Data Sources]
<account_name> = SnowflakeDSIIDriver
[<dsn_name>]
Description = SnowflakeDB
Driver = SnowflakeDSIIDriver
Locale = en-US
SERVER = <organization_name>-<connection_name>.snowflakecomputing.com
Por exemplo:
[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver
[client_redirect]
Description = SnowflakeDB
Driver = SnowflakeDSIIDriver
Locale = en-US
SERVER = myorg-myconnection.snowflakecomputing.com
Driver Node.js¶
Especifique o nome do host para a URL de conexão na opção de conexão account
. Para obter mais informações sobre os parâmetros de conexão, consulte Referência de opções do Node.js.
var configuration = {
username: '<username>',
password: '<password>',
account: <organization_name>-<connection_name>.
}
var connection = snowflake.createConnection(configuration)
Por exemplo:
var configuration = {
username: 'jsmith',
password: 'mySecurePassword',
account: myorg-myconnection.
}
var connection = snowflake.createConnection(configuration)
Driver Go Snowflake¶
Especifique o nome do host para a URL de conexão no parâmetro Account
. Para obter mais informações, consulte Driver Go Snowflake.
cfg := &Config{
Account: "<organization_name>-<connection_name>",
User: "<username>",
Password: "<password>"
}
dsn, err := DSN(cfg)
Por exemplo:
cfg := &Config{
Account: "myorg-myconnection",
User: "jsmith",
Password: "mySecurePassword"
}
dsn, err := DSN(cfg)
Snowpark¶
Snowpark Python¶
Especifique o nome do host para a URL de conexão no parâmetro de conexão account
no dicionário Python (dict
) usado para estabelecer uma sessão. Para obter mais informações sobre a criação de uma sessão, consulte Como criar uma sessão para o Snowpark Python.
connection_parameters = {
"account": "<organization_name>-<connection_name>",
"user": "<snowflake_user>",
"password": "<snowflake_password>"
}
Por exemplo:
connection_parameters = {
"account": "myorg-myconnection",
"user": "jsmith",
"password": "mySecurePassword"
}
Snowpark Java¶
Especifique a URL de conexão na propriedade URL
no arquivo de propriedades ou Map
que você usa para estabelecer a sessão. Para obter mais informações sobre a criação de uma sessão, consulte Como criar uma sessão para o Snowpark Java.
# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Por exemplo:
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Snowpark Scala¶
Especifique a URL de conexão na propriedade URL
no arquivo de propriedades ou Map
que você usa para estabelecer a sessão. Para obter mais informações sobre a criação de uma sessão, consulte Como criar uma sessão para o Snowpark Scala.
# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Por exemplo:
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Autenticação e redirecionamento do cliente¶
Os usuários devem ser provisionados na conta de origem e em cada conta de destino se as integrações de segurança não estiverem replicadas.
Autenticação federada e SSO¶
Configure a autenticação federada separadamente em cada conta de destino. Forneça os detalhes do provedor de identidade (IdP) usando as opções de configuração em Configuração do Snowflake para usar a autenticação federada:
Nota
O Snowflake recomenda configurar seu provedor de identidade compatível com SAML 2.0 (IdP) com a URL de conexão ao invés de uma URL de conta para que os usuários sejam redirecionados para a conta correta em caso de failover.
OAuth¶
Configure um objeto de integração de segurança para OAuth em cada conta de destino. O objeto de integração de segurança deve ser idêntico ao mesmo objeto na conta de origem. Para instruções, consulte o tópico apropriado:
Para recuperar as propriedades de integração de segurança, consulte o comando DESCRIBE INTEGRATION para cada integração de segurança na conta de origem. Em seguida, recrie cada integração de segurança em uma conta de destino executando o comando CREATE INTEGRATION.
Comportamento de redirecionamento do OAuth¶
Se você estiver usando o Snowflake OAuth para autenticar uma conexão de cliente e estiver se conectando ao Snowflake usando uma URL de conexão, será solicitado a se reautenticar se a URL de conexão for redirecionada para outra conta (por exemplo, em caso de failover). Os tokens Snowflake OAuth são válidos para uso em uma conta específica. Quando um URL de conexão é atualizado para apontar para uma conta em uma região diferente, o token OAuth existente torna-se inválido.
Em caso de falha, quando a URL de conexão for atualizada para a nova conta, o cliente se desconectará com um erro invalid OAuth access token
. Você deve se reautenticar e consentir nas permissões para restabelecer a conexão.
Nota
Você não receberá uma solicitação para se autenticar novamente quando o URL da conexão for atualizado para uma nova conta se a integração de segurança OAuth for replicada para essa conta. Para obter mais informações, consulte Replicação de integrações de segurança OAuth.
Redirecionamento de conexões do cliente¶
No caso de uma interrupção de serviço na região onde a conexão primária está localizada, redirecione a conexão do cliente para uma conta que armazena uma conexão secundária.
Promoção de uma conexão secundária para servir como conexão primária¶
Iniciar o redirecionamento envolve a promoção de uma conexão secundária em uma região disponível para servir como conexão primária usando ALTER CONNECTION. Ao mesmo tempo, a conexão primária anterior torna-se uma conexão secundária.
Execute as instruções SQL desta seção na conta de destino que contém a conexão secundária atual que você está promovendo.
Exemplo:
-- view all connections
SHOW CONNECTIONS;
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1 | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2 | MYCONNECTION | NULL | false | MYORG.MYACCOUNT1.MYCONNECTION | | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
-- promote the secondary connection to serve as the primary connection
ALTER CONNECTION myconnection PRIMARY;
-- verify that the former secondary connection was promoted successfully
SHOW CONNECTIONS;
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2 | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | false | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1 | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Modificação das configurações DNS para conectividade privada com o serviço Snowflake¶
Para redirecionar as conexões do cliente para uma conta secundária, seu administrador de rede deve modificar a configuração DNS criada em Configuração das definições de DNS para conectividade privada com o serviço do Snowflake.
Usando uma ferramenta fornecida por seu provedor de DNS, modifique a configuração DNS para a URL de conexão.
Defina o nome do host de destino como a URL completa da conta Snowflake para a conta que armazena sua nova conexão primária, incluindo os segmentos adicionais que identificam a região e a plataforma de nuvem onde sua conta está hospedada e o suporte para AWS PrivateLink, Azure Private Link ou Google Cloud Private Service Connect. Este é o nome da conta para onde as conexões do cliente com a URL de conexão serão agora redirecionadas. Certifique-se de incluir a URL OCSP de conectividade privada ao atualizar as configurações de DNS.
Por exemplo:
myaccount1.us-east-1.privatelink.snowflakecomputing.com.
ocsp.myaccount1.us-east-1.privatelink.snowflakecomputing.com.
(Observe o ponto final, que deve ser incluído.)
Nota
Você pode configurar a conectividade privada e o redirecionamento do cliente para funcionar com a Snowsight. Certifique-se de que suas atualizações DNS incluam os valores Snowsight da saída da função SYSTEM$GET_PRIVATELINK_CONFIG. Para obter mais detalhes, consulte conectividade privada e Snowsight.
Verificar se a URL de conexão está atualizada¶
Para verificar se a URL de conexão foi atualizada, você pode confirmar a região de sua conexão atual. Use a URL de conexão para se conectar ao Snowflake e execute a função CURRENT_REGION.
SELECT CURRENT_REGION();
Modificação de uma conexão¶
Você pode editar as contas de destino de uma conexão depois de criá-la usando Snowsight ou SQL.
Modificação das contas de destino para uma conexão usando Snowsight¶
Você pode modificar a conta de destino de uma conexão após criá-la, mas não pode alterar o nome da conexão.
Nota
Para editar uma conexão, você deve estar conectado como usuário com a função ACCOUNTADMIN nas seguintes contas:
A conta de origem com a conexão primária.
A conta de destino atual com a conexão secundária.
A nova conta de destino que você deseja adicionar à conexão primária.
Você só pode adicionar uma conta de destino para uma conexão principal usando Snowsight. Para adicionar outras contas de destino, use o comando ALTER CONNECTION.
Entre em Snowsight e navegue até Admin » Accounts.
Selecione Client Redirect.
Localize a conexão que você deseja editar. Selecione o menu More (…) na última coluna da linha.
Modificação das contas de destino para uma conexão usando SQL¶
Você pode adicionar mais de uma conta de destino para uma conexão primária usando o comando ALTER CONNECTION. Para obter um exemplo, consulte Exemplos.
Descarte de uma conexão¶
Você pode descartar uma conexão usando Snowsight ou SQL.
Descarte de uma conexão usando o Snowsight¶
Para excluir uma conexão, você deve fazer login como usuário com a função ACCOUNTADMIN na conta de origem com a conexão principal.
Entre em Snowsight e navegue até Admin » Accounts.
Selecione Client Redirect.
Localize a conexão que deseja excluir. Selecione o menu More (…) na última coluna da linha.
Selecione Drop e depois selecione Drop Connection.
Descarte de uma conexão usando SQL¶
Você pode usar o comando DROP CONNECTION para excluir uma conexão.
Exclua todas as conexões secundárias nas contas de destino.
Exclua a conexão primária na conta de origem.
Para obter um exemplo, consulte Exemplos.
Monitoramento do redirecionamento do cliente¶
Você pode monitorar conexões e uso do redirecionamento de cliente para contas em uma organização usando Snowsight ou SQL.
Monitoramento do redirecionamento de cliente usando Snowsight¶
Nota
Somente um usuário com a função ACCOUNTADMIN pode visualizar detalhes da conexão usando Snowsight.
Você deve estar conectado à conta de destino como um usuário com a função ACCOUNTADMIN. Caso contrário, você será solicitado a fazer login.
Para visualizar os detalhes da conexão do redirecionamento de cliente, conclua as etapas a seguir:
Entre em Snowsight e navegue até Admin » Accounts.
Selecione Replication e depois selecione Client Redirect.
Se não houver nenhum warehouse ativo para a sessão, você será solicitado a selecionar um warehouse.
Monitore uma conexão específica usando pesquisa e filtros.
Você pode pesquisar pelo nome da conexão. Na caixa (pesquisa), insira o nome da conexão para filtrar os resultados.
Escolha Redirecting para filtrar os resultados por conexão primária (To) ou secundária (From).
Escolha o menu (contas) para filtrar os resultados por nome da conta.
Você pode revisar as seguintes informações sobre cada conexão:
Coluna |
Descrição |
---|---|
Name |
Nome da conexão. |
Redirecting |
Indica se a conexão é To uma conta de destino ou From uma conta de origem e o nome da conta. Se esta coluna contiver destinos disponíveis, não há conexões secundárias. O número de destinos disponíveis indica o número de contas de destino para as quais a conexão primária pode ser replicada. Se houver mais de uma conexão secundária, cada conexão será detalhada em uma linha separada. |
Usage |
Exibe o número de vezes que a conexão foi usada nos últimos 7 dias. Você deve fazer login na conta de destino para visualizar os dados de uso dessa conta. |
Connection URL |
O URL da conexão a ser usado com clientes Snowflake. Selecione o URL da conexão na coluna para copiar o URL. |
Monitoramento do redirecionamento de cliente usando SQL¶
Você pode visualizar detalhes da conexão e monitorar o uso usando o comando SHOW CONNECTIONS e a função LOGIN_HISTORY.
Visualização dos detalhes da conexão¶
Você pode recuperar nomes e detalhes de conexões usando o comando SHOW CONNECTIONS:
SHOW CONNECTIONS;
Retorna:
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region | created_on | account_name | name | comment | is_primary | primary | failover_allowed_to_accounts | connection_url | organization_name | account_locator |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2 | 2023-07-05 08:57:11.143 -0700 | MYORG.MYACCOUNT1 | MYCONNECTION | NULL | true | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1 | 2023-07-08 09:15:11.143 -0700 | MYORG.MYACCOUNT2 | MYCONNECTION | NULL | false | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3 | myorg-myconnection.snowflakecomputing.com | MYORG | MYACCOUNTLOCATOR1 |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
Verificação do URL de conexão usado por seus usuários¶
Consulte a família LOGIN_HISTORY , LOGIN_HISTORY_BY_USER de funções de tabela para ver a atividade de login de seus usuários nos últimos 7 dias. A saída indica quais usuários e clientes Snowflake têm usado uma URL de conexão. As colunas REPORTED_CLIENT_TYPE e REPORTED_CLIENT_VERSION exibem o cliente e a versão utilizada para cada conexão ao Snowflake, e a coluna CONNECTION exibe a URL de conexão utilizada, se houver.
Nota
Se um cliente se autentica através de um provedor de identidade (IdP) que está configurado com a URL da conta em vez da URL de conexão, o IdP direciona o cliente para a URL da conta após a autenticação estar completa. A coluna CONNECTION para este evento de login é NULL. Consulte Autenticação e redirecionamento do cliente (neste tópico).
Por exemplo, recupere até 100 eventos de login de cada usuário que sua função atual pode monitorar nas últimas 72 horas:
SELECT event_timestamp, user_name, client_ip, reported_client_type, is_success, connection
FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(
DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),
CURRENT_TIMESTAMP()))
ORDER BY EVENT_TIMESTAMP;
Limitações atuais do redirecionamento do cliente¶
As conexões de clientes usando um URL de conexão e integração OAuth exigem a reautenticação quando o URL de conexão é atualizado para apontar para uma conta diferente se a integração de segurança OAuth não for replicada para aquela conta. Para obter mais informações, consulte Comportamento de redirecionamento do OAuth.
Os navegadores podem levar vários minutos para serem redirecionados devido ao cache do navegador.
Se você precisar verificar se o redirecionamento funciona, você pode se conectar ao Snowflake com um cliente diferente.
Como alternativa, abra uma nova janela privada do navegador (por exemplo, modo incógnito no Google Chrome) para evitar problemas de cache do navegador. Observe que alguns navegadores em modo privado ou incógnito ainda podem armazenar dados. Para evitar o uso do cache do navegador, feche quaisquer janelas e abas dos navegadores privados abertos antes de abrir uma nova janela de navegador privado.
Você só pode adicionar uma conta de destino usando Snowsight. Para adicionar mais de uma conta de destino à lista de contas de failover permitidas, use o comando ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS.