Umleiten von Clientverbindungen¶
Die Clientumleitung ermöglicht das Umleiten Ihrer Clientverbindungen zu Snowflake-Konten in verschiedenen Regionen für Geschäftskontinuität und Notfallwiederherstellung oder bei der Migration Ihres Kontos in eine andere Region oder zu einer anderen Cloudplattform.
Unter diesem Thema:
Einführung in die Clientumleitung¶
Die Clientumleitung wird durch ein Snowflake-Verbindungsobjekt implementiert. Das Verbindungsobjekt speichert eine sichere Verbindungs-URL, die Sie für die Verbindung eines Snowflake-Clients mit Snowflake verwenden können.
Der Hostname in der Verbindungs-URL setzt sich aus dem Namen Ihrer Organisation und dem Namen des Verbindungsobjekts sowie einem gemeinsamen Domänennamen zusammen:
organization_name-connection_name.snowflakecomputing.com
Beachten Sie, dass dieser Hostname nicht das Konto angibt, mit dem Sie sich verbinden. Ein Kontoadministrator legt das zu verwendende Konto fest, indem er die Verbindung in diesem Kontos als Primärverbindung definiert. Wenn Sie die Verbindungs-URL verwenden, um eine Verbindung zu Snowflake herzustellen, stellen Sie eine Verbindung zu dem Konto her, das die Primärverbindung enthält.
Wenn ein Ausfall in einer Region oder bei einer Cloudplattform auftritt und der Ausfall das Konto mit der Primärverbindung betrifft, kann der Administrator eine Verbindung in einem anderen Konto in einer anderen Region oder auf einer anderen Cloudplattform zur Primärverbindung heraufstufen.
Während dieses Ausfalls können Sie weiterhin dieselbe Verbindungs-URL für die Verbindung zu Snowflake verwenden. Snowflake löst die Verbindungs-URL zu dem Konto mit der neu heraufgestuften Verbindung auf (das Konto außerhalb der vom Ausfall betroffenen Region oder Cloudplattform).
Bemerkung
Die Snowflake-Konten, die die Primär- und Sekundärverbindungen speichern, müssen in unterschiedlichen Regionen gehostet werden.
Ablauf der Clientumleitung¶
Führen Sie die unter Clientumleitung konfigurieren (unter diesem Thema) beschriebenen Schritte aus, um eine Verbindungs-URL für Clientverbindungen zu erstellen. Dazu gehört das Erstellen einer Primärverbindung und einer oder mehrerer verknüpfter Sekundärverbindungen.
Aktualisieren Sie Snowflake-Clients, um eine Verbindung über die Verbindungs-URL herzustellen. Unter Verwenden einer Verbindungs-URL (unter diesem Thema) finden Sie eine Liste der unterstützten Clients und Verbindungsdetails.
Falls der Dienst in der Region ausfällt, in der sich die Primärverbindung befindet, führen Sie die Schritte unter Umleiten von Clientverbindungen (unter diesem Thema) aus, um die Verbindungs-URL zu aktualisieren und auf eine Sekundärverbindung umzuleiten.
Wenn der Ausfall behoben ist, führen Sie die Schritte unter Umleiten von Clientverbindungen aus, um die Clientverbindungen wieder auf die ursprüngliche Primärverbindung umzuleiten.
Die folgenden Diagramme veranschaulichen den Ablauf der Clientumleitung für zwei Konten derselben Organisation, aber in unterschiedlichen Regionen (Region A
und Region B
) auf derselben oder auf unterschiedlichen Cloudplattformen.
Die Primärverbindung befindet sich in Account 1
in Region A
. Snowflake-Clients, die die Verbindungs-URL verwenden, verbinden sich mit Account 1
.
Ein Dienstausfall in Region A
führt zu fehlgeschlagenen Clientverbindungen:
Die Verbindung in Account 2
in Region B
wird zur Primärverbindung hochgestuft. Snowflake-Clients, die die Verbindungs-URL verwenden, verbinden sich nun mit Account 2
.
Beispiel¶
Die folgenden SQL-Anweisungen durchlaufen den Clientumleitungs-Workflow. Jeder Schritt wird in den folgenden Abschnitten dieses Themas ausführlich erläutert.
Normale Clientverbindungen: Clientumleitung konfigurieren¶
Von Quellkonto ausführen¶
Erstellen Sie eine neue Primärverbindung, und aktivieren Sie die Ausfallsicherung (Failover) für andere Konten in Ihrer Organisation. Jedes Konto, für das die Ausfallsicherung (Failover) aktiviert ist, muss sich in einer anderen Region befinden als das Konto mit der Primärverbindung.
Beachten Sie die Spalte account_name
in der Ausgabe von SHOW REPLICATION ACCOUNTS für jedes Konto, für das die Ausfallsicherung (Failover) aktiviert werden soll.
-- 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;
Wenn private Konnektivität zum Snowflake-Dienst für Ihr Snowflake-Konto aktiviert ist, müssen Sie einen DNS-CNAME-Datensatz für Ihre Verbindungs-URL erstellen und verwalten. Weitere Details dazu finden Sie unter Konfigurieren des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst.
Von Zielkonto ausführen¶
Erstellen Sie eine Sekundärverbindung, die mit der Primärverbindung verknüpft ist. Der Name der Sekundärverbindung muss derselbe sein wie der Name der Primärverbindung.
CREATE CONNECTION myconnection
AS REPLICA OF myorg.myaccount1.myconnection;
Wenn private Konnektivität zum Snowflake-Dienst für Ihr Snowflake-Konto aktiviert ist, müssen Sie einen DNS-CNAME-Datensatz für Ihre Verbindungs-URL erstellen oder aktualisieren. Weitere Details dazu finden Sie unter Ändern des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst.
Der Ausfall tritt in der Quellregion auf: Failover¶
Wenn es in der Region, in der sich die Primärverbindung befindet, zu einem Ausfall kommt, sollte eine Sekundärverbindung in einer anderen Region als die Primärverbindung fungieren.
Von Zielkonto ausführen¶
ALTER CONNECTION myconnection PRIMARY;
Wenn private Konnektivität zum Snowflake-Dienst für Ihr Snowflake-Konto aktiviert ist, müssen Sie einen DNS-CNAME-Datensatz für Ihre Verbindungs-URL erstellen oder aktualisieren. Weitere Details dazu finden Sie unter Ändern des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst.
Ausfall behoben: Failback¶
Sobald der Ausfall behoben ist, wird die ursprüngliche Primärverbindung wieder als Primärverbindung verwendet.
Von Quellkonto ausführen¶
Führen Sie den folgenden Befehl von dem Konto mit der Verbindung aus, die Sie als primär einstufen möchten:
ALTER CONNECTION myconnection PRIMARY;
Wenn private Konnektivität zum Snowflake-Dienst für Ihr Snowflake-Konto aktiviert ist, müssen Sie einen DNS-CNAME-Datensatz für Ihre Verbindungs-URL erstellen oder aktualisieren. Weitere Details dazu finden Sie unter Ändern des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst.
Clientumleitung konfigurieren¶
In diesem Abschnitt wird beschrieben, wie Sie eine Primärverbindung und eine oder mehrere Sekundärverbindungen in einer Verbindungsgruppe erstellen.
Voraussetzung¶
Um das Feature „Clientumleitung“ für Ihre Konten zu aktivieren, muss ein Organisationsadministrator (ein Benutzer mit der Rolle ORGADMIN) die Replikation für zwei oder mehr Konten aktivieren. Eine ausführliche Anleitung zum Aktivieren der Replikation finden Sie unter Voraussetzung: Aktivieren Sie die Replikation für Konten der Organisation.
Bemerkung
Die SQL-Befehle in diesem Abschnitt können nur von Kontoadministratoren (Benutzern mit der Rolle ACCOUNTADMIN) ausgeführt werden.
Primärverbindung erstellen¶
Wichtig
Bei der Erstellung Ihrer Organisation hat Snowflake dieser Organisation einen eindeutigen, generierten Namen zugewiesen. Der Organisationsname ist Teil der Verbindungs-URL, die in einem Verbindungsobjekt definiert ist und von Snowflake-Clients für den Zugriff auf ein Konto übermittelt wird. Bevor Sie Verbindungsobjekte erstellen, überprüfen Sie, ob der Organisationsname in Snowflake Ihren Anforderungen entspricht. Wenn Sie den Namen Ihrer Organisation im System ändern möchten, wenden Sie sich an den Snowflake-Support.
Erstellen Sie mit CREATE CONNECTION eine neue Primärverbindung. Der Name jeder Primärverbindung muss unter den Verbindungs- und Kontonamen der Organisation eindeutig sein. Er darf nicht mehr als 31 Zeichen lang sein.
Der Verbindungsname ist Teil der Verbindungs-URL, die für die Verbindung mit Snowflake-Konten verwendet wird.
Erstellen Sie zum Beispiel eine Verbindung mit dem Namen
myconnection
:CREATE CONNECTION myconnection;
Ändern Sie diese Primärverbindung mit einer ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS-Anweisung. Geben Sie eine durch Kommas getrennte Liste von Konten Ihrer Organisation an, die eine Failover-Option für diese Verbindung (d. h. eine Sekundärverbindung) speichern können.
Jedes Konto, das eine Sekundärverbindung speichert, muss in einer anderen Region gehostet werden als das Konto, das die Primärverbindung speichert. Die Clientumleitung funktioniert nur zwischen unterschiedlichen Regionen. Wenn Sie beispielsweise versuchen, Clientverbindungen von
account1
nachaccount2
in derselben Region umzuleiten, funktioniert die Clientumleitung nicht.Um die vollständige Liste der Konten in Ihrer Organisation anzuzeigen, die für die Replikation aktiviert sind, führen Sie SHOW REPLICATION ACCOUNTS aus.
Erlauben Sie zum Beispiel den Konten
myaccount2
undmyaccount3
der Organisationmyorg
, jeweils eine Sekundärverbindung für die Verbindungmyconnection
zu speichern:ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
Führen Sie den Befehl SHOW CONNECTIONS aus, um die Details der Verbindung anzuzeigen.
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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Sekundärverbindung erstellen¶
Erstellen Sie eine Sekundärverbindung in einem oder mehreren Konten, die mit einer Primärverbindung über CREATE CONNECTION … AS REPLICA OF. Beachten Sie, dass Sie eine Sekundärverbindung nur in einem Konto erstellen können, das in der Anweisung ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS in Primärverbindung erstellen angegeben ist.
Führen Sie eine CREATE CONNECTION … AS REPLICA OF-Anweisung in jedem Zielkonto aus, um ein Replikat der angegebenen Primärverbindung zu erstellen.
Wichtig
Jede Sekundärverbindung muss denselben Namen wie ihre Primärverbindung haben. Der Verbindungsname ist in der Verbindungs-URL enthalten.
Führen Sie die SQL-Anweisungen aus diesem Abschnitt in dem Ziel konto aus, für das Sie eine Sekundärverbindung erstellen möchten.
Führen Sie den Befehl SHOW CONNECTIONS aus, um alle Verbindungen anzuzeigen. Kopieren Sie den Wert der Spalte
primary
für die Primärverbindung. Dieser Wert wird im nächsten Schritt zum Erstellen der Sekundärverbindung benötigt.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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Führen Sie den Befehl CREATE CONNECTION … AS REPLICA OF aus, um eine Sekundärverbindung zu erstellen.
Erstellen Sie zum Beispiel eine Sekundärverbindung mit dem Namen
myconnection
, die mit der Primärverbindungmyorg.myaccount1.myconnection
verknüpft ist. Fügen Sie nachAS REPLICA OF
den vollqualifizierten Namen der Primärverbindung ein (den Namen, den Sie im vorherigen Schritt aus der Ausgabe von SHOW CONNECTIONS kopiert haben).CREATE CONNECTION myconnection AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
Führen Sie den Befehl SHOW CONNECTIONS aus, um zu überprüfen, ob die Sekundärverbindung erstellt wurde.
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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Konfigurieren des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst¶
Wenn private Konnektivität zum Snowflake-Dienst für Ihr Snowflake-Konto aktiviert ist, muss Ihr Netzwerkadministrator einen DNS-CNAME-Datensatz für Ihre Verbindungs-URL erstellen und verwalten. Für alle anderen Konten erstellt und verwaltet Snowflake den CNAME-Datensatz.
Diese Schritte verwenden AWS PrivateLink als Beispiel. Die Schritte sind die gleichen, wenn Ihr Snowflake-Konto Azure Private Link oder Google Cloud Private Service Connect verwendet:
Führen Sie SHOW CONNECTIONS in einem Ihrer Konten aus, in dem die Clientumleitung aktiviert ist. Angenommen, dass AWS PrivateLink für
myaccount1
undmyaccount2
aktiviert ist.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 | +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Beachten Sie, dass die Ausgabe dieses Befehls in der Spalte CONNECTION_URL mit der Liste
privatelink-connection-urls
übereinstimmen muss, wenn Sie die Funktion SYSTEM$GET_PRIVATELINK_CONFIG entweder inmyaccount1
odermyaccount2
aufrufen. Diese Liste enthält bereits die Verbindungs-URL, die mit dem Segmentprivatelink
formatiert ist (wie im nächsten Schritt gezeigt). Sie können in diesem Schritt optional den Befehl ausführen oder die Funktion aufrufen. Wenn Sie die Funktion aufrufen, verwenden Sie die URLs so, wie sie sind, ohne weitere Änderungen.Notieren Sie sich den Wert in der Spalte CONNECTION_URL. Fügen Sie ein
privatelink
-Segment an die URL kurz vorsnowflakecomputing.com
(myorg-myconnection.privatelink.snowflakecomputing.com
, in diesem Beispiel).Erstellen Sie mit einem von Ihrem DNS-Anbieter bereitgestellten Tool einen CNAME-Datensatz für die Verbindungs-URL:
Legen Sie die Domäne (oder den Alias) unter Verwendung des geänderten CONNECTION_URL-Spaltenwerts fest.
Legen Sie den Zielhostnamen als vollständige Snowflake-Konto-URL für das Konto fest, das Ihre Primärverbindung speichert, einschließlich der zusätzlichen Segmente, die die Region und die Cloudplattform identifizieren, auf der Ihr Konto gehostet wird, sowie die Unterstützung von AWS PrivateLink. Dies ist der Kontoname, zu dem Clientverbindungen zur Verbindungs-URL umgeleitet werden.
Beispiel:
myaccount1.us-west-2.privatelink.snowflakecomputing.com.
Alternativ können Sie auch die Organisations- und Kontonamen-URL verwenden.
Beispiel:
myorg-myaccount1.privatelink.snowflakecomputing.com.
Beachten Sie den nachstehenden Punkt, der unbedingt enthalten sein muss.
Benutzer stellen die Verbindung zu Snowflake über das folgende Verbindungs-URL-Format her:
organization_name-connection_name.privatelink.snowflakecomputing.com
Wobei:
organization_name
Name Ihrer Snowflake-Organisation. Die Snowflake-Konten, mit denen sich Ihre Benutzer verbinden, sind in dieser Organisation enthalten.
connection_name
Name des Verbindungsobjekts.
Weitere Informationen dazu finden Sie unter:
Verwenden einer Verbindungs-URL (unter diesem Thema).
Ändern des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst (unter diesem Thema).
Verwenden einer Verbindungs-URL¶
In diesem Abschnitt finden Sie eine Anleitung für das Verweisen auf eine Verbindungs-URL in der Konfiguration der verschiedenen Snowflake-Clients.
Unterstützte Snowflake-Clients¶
Die Clientumleitung wird von Snowsight und Klassische Snowflake-Konsole unterstützt. Außerdem unterstützen die folgenden Snowflake-Clientversionen (und höher) die Clientumleitung:
Snowflake-Clients |
Unterstützte Mindestversion |
---|---|
SnowSQL |
1.1.82 |
Snowflake-Konnektor für Python |
1.8.3 |
Node.js-Treiber |
1.2.0 |
Go-Snowflake-Treiber |
1.2.0 |
.NET-Treiber |
1.0.0 |
JDBC-Treiber |
3.8.4 |
ODBC-Treiber |
2.19.4 |
Snowpark |
Alle Versionen |
Snowflake-Clients konfigurieren¶
Verwenden Sie den folgenden Hostnamen für die Verbindungs-URL, wenn Sie eine Verbindung zu Snowflake herstellen:
Hostname:
organization_name-connection_name.snowflakecomputing.com
Wobei:
organization_name
Name Ihrer Snowflake-Organisation. Die Snowflake-Konten, mit denen sich Ihre Benutzer verbinden, sind in dieser Organisation enthalten.
connection_name
Name des Verbindungsobjekts.
Wichtig
Private Konnektivität zum Snowflake-Dienst
Kunden, die private Konnektivität zum Snowflake-Dienst verwenden, müssen ein privatelink
-Segment an das URL-Segment direkt vor snowflakecomputing.com
anhängen:
organization_name-connection_name.privatelink.snowflakecomputing.com
Snowsight¶
Geben Sie in das Kontonamensfeld auf app.snowflake.com Folgendes ein:
<organization-name>-<connection-name>
Beispiel:
myorg-myconnection
Wenn Sie sich über organization-connection
anmelden, navigiert Snowsight zu der spezifischen Region und dem Standort der aktuellen Primärverbindung. Während eines Ausfalls müssen sich die Benutzer, sobald die Verbindung umgeleitet wurde, erneut über organization-connection
anmelden, um eine Verbindung zur neuen Primärverbindung herzustellen.
Klassische Snowflake-Konsole¶
Geben Sie folgende URL in einen Webbrowser ein:
https://<organization_name>-<connection_name>.snowflakecomputing.com/
Beispiel:
https://myorg-myconnection.snowflakecomputing.com/
SnowSQL¶
Geben Sie den Hostnamen für die Verbindungs-URL im Verbindungsparameter accountname
der SnowSQL-config
-Datei an. Weitere Informationen zur config
-Datei finden Sie unter Konfigurieren von SnowSQL.
accountname = <organization_name>-<connection_name>
username = <username>
password = <password>
Beispiel:
accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
Snowflake-Konnektor für Python¶
Geben Sie den Hostnamen für die Verbindungs-URL im Verbindungsparameter account
an, wenn Sie die Verbindungfunktion aufrufen. Weitere Informationen dazu finden Sie unter Python-Konnektor-API und Verwenden des Python-Konnektors.
con = snowflake.connector.connect (
account = <organization_name>-<connection_name>
user = <username>
password = <password>
)
Beispiel:
con = snowflake.connector.connect (
account = myorg-myconnection
user = jsmith
password = mySecurePassword
)
JDBC-Treiber¶
Geben Sie den Hostnamen für die Verbindungs-URL in der Verbindungszeichenfolge an. Weitere Informationen dazu finden Sie unter Konfigurieren des JDBC-Treibers.
jdbc:snowflake://<organization_name>-<connection_name>.snowflakecomputing.com/?user=<username>&password=<password>
Beispiel:
jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
ODBC-Treiber¶
Geben Sie den Hostnamen für die Verbindungs-URL im „Server“-Verbindungsparameter an. Weitere Informationen zu den Verbindungsparametern finden Sie unter ODBC-Konfigurations- und Verbindungsparameter.
[ODBC Data Sources]
<account_name> = SnowflakeDSIIDriver
[<dsn_name>]
Description = SnowflakeDB
Driver = SnowflakeDSIIDriver
Locale = en-US
SERVER = <organization_name>-<connection_name>.snowflakecomputing.com
Beispiel:
[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver
[client_redirect]
Description = SnowflakeDB
Driver = SnowflakeDSIIDriver
Locale = en-US
SERVER = myorg-myconnection.snowflakecomputing.com
Node.js-Treiber¶
Geben Sie den Hostnamen für die Verbindungs-URL in der account
-Verbindungsoption an. Weitere Informationen zu den Verbindungsparametern finden Sie unter Optionen für Node.js-Verbindungen.
var configuration = {
username: '<username>',
password: '<password>',
account: <organization_name>-<connection_name>.
}
var connection = snowflake.createConnection(configuration)
Beispiel:
var configuration = {
username: 'jsmith',
password: 'mySecurePassword',
account: myorg-myconnection.
}
var connection = snowflake.createConnection(configuration)
Go-Snowflake-Treiber¶
Geben Sie den Hostnamen für die Verbindungs-URL im Parameter Account
an. Weitere Informationen dazu finden Sie unter Go-Snowflake-Treiber.
cfg := &Config{
Account: "<organization_name>-<connection_name>",
User: "<username>",
Password: "<password>"
}
dsn, err := DSN(cfg)
Beispiel:
cfg := &Config{
Account: "myorg-myconnection",
User: "jsmith",
Password: "mySecurePassword"
}
dsn, err := DSN(cfg)
Snowpark¶
Snowpark Python¶
Geben Sie im Verbindungsparameter account
des Python-Wörterbuchs (dict
) den Hostnamen für die Verbindungs-URL an, die für den Aufbau der Sitzung verwendet werden soll. Weitere Informationen zum Erstellen einer Sitzung finden Sie unter Erstellen einer Sitzung für Snowpark Python.
connection_parameters = {
"account": "<organization_name>-<connection_name>",
"user": "<snowflake_user>",
"password": "<snowflake_password>"
}
Beispiel:
connection_parameters = {
"account": "myorg-myconnection",
"user": "jsmith",
"password": "mySecurePassword"
}
Snowpark-Java¶
Geben Sie in der Eigenschaft URL
der Eigenschaftendatei oder Map
die Verbindungs-URL an, die für den Aufbau der Sitzung verwendet werden soll. Weitere Informationen zum Erstellen einer Sitzung finden Sie unter Erstellen einer Sitzung für Snowpark Java.
# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Beispiel:
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Snowpark Scala¶
Geben Sie in der Eigenschaft URL
der Eigenschaftendatei oder Map
die Verbindungs-URL an, die für den Aufbau der Sitzung verwendet werden soll. Weitere Informationen zum Erstellen einer Sitzung finden Sie unter Erstellen einer Sitzung für Snowpark Scala.
# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com
Beispiel:
# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Authentifizierung und Clientumleitung¶
Die Benutzer müssen im Quellkonto und in jedem Zielkonto bereitgestellt werden.
Verbundauthentifizierung und SSO¶
Konfigurieren Sie die Verbundauthentifizierung separat in jedem Zielkonto. Geben Sie die Details des Identitätsanbieters (IdP) unter Verwendung der Einrichtungsoptionen in Konfigurieren von Snowflake für die Verwendung der Verbundauthentifizierung an:
Bemerkung
Snowflake empfiehlt, dass Sie Ihren SAML 2.0-kompatiblen Identitätsanbieter (IdP) mit der Verbindungs-URL und nicht mit einer Konto-URL konfigurieren, damit Benutzer im Falle eines Failovers zum korrekten Konto umgeleitet werden.
OAuth¶
Konfigurieren Sie in jedem Zielkonto ein Sicherheitsintegrationsobjekt für OAuth. Das Sicherheitsintegrationsobjekt muss mit demselben Objekt im Quellkonto identisch sein. Eine Anleitung dazu finden Sie unter folgenden Themen:
Um Eigenschaften der Sicherheitsintegration abzurufen, fragen Sie den Befehl DESCRIBE INTEGRATION für jede Sicherheitsintegration im Quellkonto ab. Erstellen Sie dann jede Sicherheitsintegration in einem Zielkonto neu, indem Sie den Befehl CREATE INTEGRATION ausführen.
OAuth-Umleitungsverhalten¶
Wenn Sie Snowflake OAuth für die Authentifizierung einer Clientverbindung verwenden und eine Verbindung zu Snowflake über eine Verbindungs-URL herstellen, werden Sie aufgefordert, sich erneut zu authentifizieren, wenn die Verbindungs-URL auf ein anderes Konto umgeleitet wird (z. B. im Falle eines Failovers). Snowflake OAuth-Token sind für die Verwendung in einem bestimmten Konto gültig. Wenn eine Verbindungs-URL aktualisiert wird, um auf ein Konto in einer anderen Bereitstellung zu verweisen, wird das vorhandene OAuth-Token ungültig.
Im Falle eines Failover wird die Verbindungs-URL mit dem neuen Konto aktualisiert, und die Clientverbindung wird mit einem invalid OAuth access token
-Fehler getrennt. Sie müssen sich erneut authentifizieren und den Berechtigungen zustimmen, um die Verbindung wiederherzustellen.
Von Ihren Benutzern verwendete Verbindungs-URL prüfen¶
Fragen Sie die LOGIN_HISTORY , LOGIN_HISTORY_BY_USER-Tabellenfunktionen ab, um die Anmeldeaktivitäten Ihrer Benutzer innerhalb der letzten 7 Tage anzuzeigen. Die Ausgabe zeigt an, welche Benutzer und Snowflake-Clients eine Verbindungs-URL verwendet haben. Die Spalten REPORTED_CLIENT_TYPE und REPORTED_CLIENT_VERSION zeigen den Client und die Version an, die für jede Verbindung zu Snowflake verwendet werden, und die Spalte CONNECTION zeigt die verwendete Verbindungs-URL an, falls vorhanden.
Bemerkung
Wenn sich ein Client über einen Identitätsanbieter (IdP) authentifiziert, der mit der Konto-URL und nicht mit der Verbindungs-URL konfiguriert ist, leitet der IdP den Client nach Abschluss der Authentifizierung an die Konto-URL weiter. Die Spalte CONNECTION für dieses Anmeldeereignis ist NULL. Weitere Informationen dazu finden Sie unter Authentifizierung und Clientumleitung (unter diesem Thema).
Rufen Sie beispielsweise bis zu 100 Anmeldeereignisse der letzten 72 Stunde für jeden Benutzer ab, den Ihre aktuelle Rolle überwachen darf:
SELECT *
FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
ORDER BY EVENT_TIMESTAMP;
Umleiten von Clientverbindungen¶
Falls der Dienst in der Region ausfällt, in der sich die Primärverbindung befindet, leiten Sie die Clientverbindung zu einem Konto um, das eine Sekundärverbindung speichert.
Heraufstufen einer Sekundärverbindung zur Verwendung als Primärverbindung¶
Die Umleitung wird eingeleitet, indem eine Sekundärverbindung in einer verfügbaren Region mit ALTER CONNECTION zur Primärverbindung heraufgestuft wird. Gleichzeitig wird die bisherige Primärverbindung zu einer Sekundärverbindung.
Führen Sie die SQL-Anweisungen in diesem Abschnitt in dem Zielkonto aus, das die aktuelle Sekundärverbindung enthält, die Sie heraufstufen möchten.
Beispiel:
-- 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 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Ändern des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst¶
Um Clientverbindungen zu einem Sekundärkonto umzuleiten, muss Ihr Netzwerkadministrator den DNS-CNAME-Datensatz ändern, der in Konfigurieren des DNS-CNAME-Datensatzes für private Konnektivität zum Snowflake-Dienst erstellt wurde.
Ändern Sie mit einem von Ihrem DNS-Anbieter bereitgestellten Tool den CNAME-Datensatz für die Verbindungs-URL.
Legen Sie den Zielhostnamen als vollständige Snowflake-Konto-URL für das Konto fest, das Ihre neue Primärverbindung speichert, einschließlich der zusätzlichen Segmente, die die Region und die Cloudplattform identifizieren, auf der Ihr Konto gehostet wird, sowie die Unterstützung von AWS PrivateLink, Azure Private Link oder Google Cloud Private Service Connect. Dies ist der Kontoname, zu dem jetzt Clientverbindungen zur Verbindungs-URL umgeleitet werden.
Beispiel:
myaccount1.us-east-1.privatelink.snowflakecomputing.com.
(Beachten Sie den nachstehenden Punkt, der unbedingt enthalten sein muss).
Bemerkung
Sie können private Konnektivität und die Clientumleitung für die Verwendung von Snowsight konfigurieren. Stellen Sie sicher, dass bei CNAME-Aktualisierungen die Snowsight-Werte aus der Ausgabe der Funktion SYSTEM$GET_PRIVATELINK_CONFIG berücksichtigt werden. Weitere Informationen dazu finden Sie unter private Konnektivität und Snowsight.
Überprüfen der Aktualisierung der Verbindungs-URL¶
Um zu überprüfen, ob die Verbindungs-URL aktualisiert wurde, können Sie die Region Ihrer aktuellen Verbindung bestätigen. Verwenden Sie die Verbindungs-URL, um eine Verbindung zu Snowflake herzustellen und die Funktion CURRENT_REGION auszuführen.
select current_region();
Aktuelle Einschränkungen bei Clientumleitungen¶
Clientverbindungen, die eine Verbindungs-URL und eine OAuth-Integration verwenden, erfordern eine erneute Authentifizierung, wenn die Verbindungs-URL aktualisiert wird, um auf ein anderes Konto zu verweisen. Weitere Details dazu finden Sie unter OAuth-Umleitungsverhalten (unter diesem Thema).
Webbrowser können aufgrund des Browser-Caches mehrere Minuten für die Umleitung benötigen.
Wenn Sie überprüfen möchten, ob die Umleitung funktioniert, können Sie eine Verbindung zu Snowflake mit einem anderen Client herstellen.
Alternativ können Sie auch ein neues privates Browserfenster öffnen (z. B. den Inkognito-Modus in Google Chrome), um Probleme mit dem Browser-Caching zu vermeiden. Beachten Sie, dass einige Webbrowser im privaten oder Inkognito-Modus möglicherweise immer noch Daten zwischenspeichern. Um die Verwendung des Browser-Caches zu vermeiden, schließen Sie erst alle geöffneten privaten Browserfenster und Registerkarten, bevor Sie ein neues privates Browserfenster öffnen.