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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Normal client connections

Ein Dienstausfall in Region A führt zu fehlgeschlagenen Clientverbindungen:

Failed client connections

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.

Redirected client connections

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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.

  1. 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;
    
    Copy
  2. Ä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 nach account2 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 und myaccount3 der Organisation myorg, jeweils eine Sekundärverbindung für die Verbindung myconnection zu speichern:

    ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
    
    Copy
  3. 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

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.

  1. 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy
  2. 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ärverbindung myorg.myaccount1.myconnection verknüpft ist. Fügen Sie nach AS 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;
    
    Copy
  3. 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

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:

  1. Führen Sie SHOW CONNECTIONS in einem Ihrer Konten aus, in dem die Clientumleitung aktiviert ist. Angenommen, dass AWS PrivateLink für myaccount1 und myaccount2 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 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
    Copy

    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 in myaccount1 oder myaccount2 aufrufen. Diese Liste enthält bereits die Verbindungs-URL, die mit dem Segment privatelink 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.

  2. Notieren Sie sich den Wert in der Spalte CONNECTION_URL. Fügen Sie ein privatelink-Segment an die URL kurz vor snowflakecomputing.com (myorg-myconnection.privatelink.snowflakecomputing.com, in diesem Beispiel).

  3. 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.
      
      Copy

      Alternativ können Sie auch die Organisations- und Kontonamen-URL verwenden.

      Beispiel:

      myorg-myaccount1.privatelink.snowflakecomputing.com.
      
      Copy

      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

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>
Copy

Beispiel:

myorg-myconnection
Copy

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/
Copy

Beispiel:

https://myorg-myconnection.snowflakecomputing.com/
Copy

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>
Copy

Beispiel:

accountname = myorg-myconnection
username = jsmith
password = mySecurePassword
Copy

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>
)
Copy

Beispiel:

con = snowflake.connector.connect (
      account = myorg-myconnection
      user = jsmith
      password = mySecurePassword
)
Copy

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>
Copy

Beispiel:

jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword
Copy

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
Copy

Beispiel:

[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver

[client_redirect]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = myorg-myconnection.snowflakecomputing.com
Copy

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)
Copy

Beispiel:

var configuration = {
  username: 'jsmith',
  password: 'mySecurePassword',
  account: myorg-myconnection.
}

var connection = snowflake.createConnection(configuration)
Copy

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)
Copy

Beispiel:

cfg := &Config{
  Account: "myorg-myconnection",
  User: "jsmith",
  Password: "mySecurePassword"
}

dsn, err := DSN(cfg)
Copy

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>"
}
Copy

Beispiel:

connection_parameters = {
  "account": "myorg-myconnection",
  "user": "jsmith",
  "password": "mySecurePassword"
}
Copy
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
Copy

Beispiel:

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy
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
Copy

Beispiel:

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Copy

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;
Copy

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 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
Copy

Ä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.
Copy

(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();
Copy

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.