Übersicht der Node.js-Optionen

Beim Erstellen eines neuen Connection-Objekts übergeben Sie ein JavaScript-Objekt, das die Optionen für die Verbindung angibt (z. B. Ihren Kontobezeichner, Ihren Benutzernamen usw.). In den folgenden Abschnitten werden die Optionen beschrieben, die Sie einstellen können. Um eine Option einzustellen, geben Sie den Optionsnamen als Eigenschaftsnamen im JavaScript-Objekte an.

Erforderliche Verbindungsoptionen

account

Ihr Kontobezeichner.

region (Veraltet)

ID der Region, in der sich Ihr Konto befindet.

Bemerkung

Diese Option ist veraltet und wird hier nur noch aus Gründen der Abwärtskompatibilität verwendet. Snowflake empfiehlt den Übergang zur Einbettung der Region in den Kontobezeichner, wie unter Verwenden eines Konto-Locators als Bezeichner beschrieben, etwa wie folgt.

var connection = snowflake.createConnection({
  account: "myaccount.us-east-2",
  username: "myusername",
  password: "mypassword"
});
Copy

Zusätzlich müssen Sie die Optionen für die Authentifizierung am Server angeben.

Authentifizierungsoptionen

application

Gibt den Namen der Clientanwendung an, die eine Verbindung zu Snowflake herstellt.

authenticator

Gibt den Authentifikator an, der für die Überprüfung der Anmeldeinformationen des Benutzers verwendet werden soll. Sie können dies auf einen der folgenden Werte einstellen:

Wert

Beschreibung

SNOWFLAKE

Verwenden des internen Snowflake-Authentifikators. Sie müssen auch die Option password einstellen.

EXTERNALBROWSER

Verwenden Sie Ihren Webbrowser zur Authentifizierung mit Okta, AD FS oder einem anderen SAML 2.0-kompatiblen Identitätsanbieter (IdP), der für Ihr Konto definiert ist.

https://<Name_des_Okta-Kontos>.okta.com

Verwenden Sie native SSO über Okta.

OAUTH

Verwenden Sie OAuth für die Authentifizierung. Sie müssen auch die Option token auf das OAuth-Token setzen (siehe unten).

SNOWFLAKE_JWT

Verwenden der Schlüsselpaar-Authentifizierung Siehe Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.

Der Standardwert ist SNOWFLAKE.

Weitere Informationen zur Authentifizierung finden Sie unter Verwenden und Verwalten der Verbundauthentifizierung und Clients, Treiber und Konnektoren.

username

Der Anmeldename für Ihren Snowflake-Benutzer oder Ihren Identitätsanbieter (z. B. Ihr Anmeldename für Okta). Legen Sie diese Option fest, wenn Sie die Option authenticator auf SNOWFLAKE, SNOWFLAKE_JWT oder auf den Okta-URL-Endpunkt Ihres Okta-Kontos (z. B. https://<Name_des_Okta-Kontos>.okta.com) gesetzt haben. Wenn Sie die Option authenticator nicht gesetzt haben, müssen Sie diesen Wert festlegen.

password

Kennwort für den Benutzer. Legen Sie diese Option fest, wenn Sie die Option authenticator auf SNOWFLAKE oder auf den Okta-URL-Endpunkt Ihres Okta-Kontos (z. B. https://<Name_des_Okta-Kontos>.okta.com) gesetzt haben oder wenn Sie die Option authenticator nicht gesetzt haben.

token

Gibt das OAuth-Token an, das für die Authentifizierung verwendet werden soll. Legen Sie diese Option fest, wenn Sie die Option authenticator auf OAUTH gesetzt haben.

privateKey

Privater Schlüssel (im PEM-Format) für die Schlüsselpaar-Authentifizierung. Weitere Details dazu finden Sie unter Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.

privateKeyPath

Gibt den lokalen Pfad zu der erstellten Datei mit dem privaten Schlüssel an (z. B rsa_key.p8). Weitere Details dazu finden Sie unter Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.

privateKeyPass

Gibt die Kennung zum Entschlüsseln der privaten Schlüsseldatei an, wenn die Datei verschlüsselt ist. Weitere Details dazu finden Sie unter Verwenden von Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.

Zusätzliche Verbindungsoptionen

accessUrl

Gibt einen vollqualifizierten Endpunkt für die Verbindung mit Snowflake an. accessUrl enthält das vollständige Schema und den Host sowie eine optionale Portnummer, ähnlich wie bei https://myaccount.us-east-1.snowflakecomputing.com.

Bemerkung

Wenn Sie die Option accessUrl verwenden, wird der in der Option account angegebene Wert nicht verwendet.

browserActionTimeout

Gibt die Timeouts in Millisekunden für Browser-Aktivitäten im Zusammenhang mit der SSO-Authentifizierung an. Der Standardwert ist 120.000 (Millisekunden).

clientSessionKeepAlive

Standardmäßig kommt es bei Clientverbindungen ca. 3–4 Stunden nach der Ausführung der letzten Abfrage zu einem Timeout.

Wenn die Option clientSessionKeepAlive auf true gesetzt ist, bleibt die Verbindung des Clients zum Server auf unbestimmte Zeit bestehen, auch wenn keine Abfragen ausgeführt werden.

Die Standardeinstellung dieser Option ist false.

Wenn Sie die Option auf true setzen, müssen Sie sicherstellen, dass Ihr Programm die Verbindung zum Server explizit trennt, sobald das Programm abgeschlossen ist. Trennen Sie erst die Verbindung, bevor Sie das Programm beenden.

clientSessionKeepAliveHeartbeatFrequency

(Gilt nur, wenn clientSessionKeepAlive den Wert „true“ hat)

Gibt die Frequenz (das Wiederholungsintervall in Sekunden) von Taktmeldungen an.

Sie können sich die Taktmeldung einer Verbindung wie einen Ersatz für eine Abfrage mit Neustart des Timeout-Countdowns der Verbindung vorstellen. Anders ausgedrückt: Wenn die Verbindung nach mindestens 4 Stunden Inaktivität abbrechen würde, setzt der Takt den Timer zurück, sodass das Timeout frühestens 4 Stunden nach dem letzten Takt (oder der letzten Abfrage) stattfindet.

Der Standardwert ist 3.600 Sekunden (eine Stunde). Der gültige Wertebereich liegt zwischen 900 und 3.600. Da Timeouts normalerweise nach frühestens 4 Stunden auftreten, reicht normalerweise ein Takt von einmal pro Stunde, damit die Verbindung aufrechterhalten bleibt. Taktintervalle von weniger als 3.600 Sekunden sind selten notwendig oder nützlich.

database

Die Standarddatenbank, die nach dem Verbinden für die Sitzung verwendet werden soll.

keepAlive

Gibt an, ob unmittelbar nach dem Empfang einer neuen Verbindungsanforderung auf dem Socket die Funktionalität zum Aufrechterhalten der Verbindung (Keep alive) aktiviert werden soll.

Standardmäßig erstellt das HTTP-Protokoll für jede Anfrage eine neue TCP-Verbindung. Wenn dieser Parameter aktiviert ist, kann der Treiber Verbindungen für mehrere Anfragen wiederverwenden, anstatt für jede Anfrage eine neue Verbindung zu erstellen.

Der Standardwert ist true.

noProxy

Gibt die Listen der Hosts an, mit denen sich der Treiber unter Umgehung des Proxyservers direkt verbinden soll (z. B. *.amazonaws.com zur Umgehung des Amazon S3-Zugriffs). Bei mehreren Hosts werden die Hostnamen durch ein Pipe-Symbol (|) getrennt. Sie können auch ein Sternchen (*) als Platzhalter verwenden. Beispiel:

noProxy: "*.amazonaws.com|*.my_company.com"

proxyHost

Gibt den Hostnamen eines authentifizierten Proxyservers an.

proxyPassword

Gibt das Kennwort des Benutzers an, der von proxyUser festgelegt wurde.

proxyPort

Gibt den Port eines authentifizierten Proxyservers an.

proxyProtocol

Gibt das Protokoll an, das für die Verbindung zum authentifizierten Proxyserver verwendet wird. Verwenden Sie diese Eigenschaft, um das HTTP-Protokoll anzugeben: http oder https.

proxyUser

Gibt den Benutzernamen an, der für die Verbindung mit einem authentifizierten Proxyserver verwendet wird.

role

Die Standardsicherheitsrolle, die nach dem Verbinden für die Sitzung verwendet werden soll.

schema

Das Standardschema, das nach dem Verbinden für die Sitzung verwendet werden soll.

timeout

Anzahl der Millisekunden, in denen die Verbindung aufrechterhalten wird, ohne dass eine Antwort erfolgt. Standardwert: 60.000 (1 Minute).

warehouse

Das standardmäßige virtuelle Warehouse, das nach dem Verbinden für die Sitzung verwendet werden soll. Wird zum Ausführen von Abfragen, Laden von Daten usw. verwendet.

Bei einigen Verbindungsoptionen wird davon ausgegangen, dass das angegebene Datenbankobjekt (Datenbank, Schema, Warehouse oder Rolle) bereits im System vorhanden ist. Wenn das angegebene Objekt nicht vorhanden ist, wird während der Verbindung kein Standard festgelegt.

Nach dem Verbinden können alle optionalen Verbindungsoptionen auch über den Befehl USE <Objekt> eingestellt oder überschrieben werden.

Konfigurationsoptionen

arrayBindingThreshold

Legt die maximale Anzahl der Bindungen fest, die der Treiber bei einer Masseneinfügeoperation verwendet. Der Standardwert ist 100.000 (100K).

resultPrefetch

Anzahl der Threads, die Clients zum Vorabrufen großer Resultsets verwenden. Gültige Werte: 1–10.

rowMode

Gibt an, wie Ergebnisse zurückgegeben werden sollen, die doppelte Spaltennamen enthalten. Die Werte umfassen:

  • array: gibt das Resultset als Array zurück, einschließlich doppelter Spaltennamen.

  • object: gibt das Resultset als Objekt zurück, wobei doppelte Spaltennamen weggelassen werden.

  • object_with_renamed_duplicated_columns: gibt das Resultset als Objekt zurück, wobei Suffixe an doppelte Namen angehängt werden, um sie eindeutig zu machen.

Der Standardwert ist object.

xmlParserConfig-Optionen

Ab Version 1.7.0 des Treibers können Sie die folgenden fast-xml-parser-Bibliothekskonfigurationsoptionen verwenden, um festzulegen, wie der Treiber bei der Abfrage von Spalten mit XML-Inhalt die XML-Dokumentattribute verarbeitet.

Standardmäßig ignoriert der Node.js-Treiber die XML-Elementattribute, wenn von einer Abfrage XML-Daten zurückgegeben werden. Im folgenden XML-Inhalt zum Beispiel enthält das Element <animal> ein Attribut id:

<exhibit name="Polar Bear Plunge">
  <animal id="000001">
    <scientificName>Ursus maritimus</scientificName>
    <englishName>Polar Bear</englishName>
    <name>Kalluk</name>
  </animal>
  <animal id="000002">
    <scientificName>Ursus maritimus</scientificName>
    <englishName>Polar Bear</englishName>
    <name>Chinook</name>
  </animal>
</exhibit>
Copy

Wenn der Node.js-Treiber das Resultset zurückgibt, wird das Attribut id standardmäßig ignoriert, und es wird die folgende Ausgabe zurückgegeben. Beachten Sie, dass die Attributnamen und -werte nicht enthalten sind.

{
  exhibit: {
    animal: [
      {
        "scientificName": "Ursus maritimus",
        "englishName": "Polar Bear",
        "name": "Kalluk",
      },
      {
        "scientificName": "Ursus maritimus",
        "englishName": "Polar Bear",
        "name": "Chinook"
      }
    ]
  }
}

Weitere Informationen zum Einstellen dieser Optionen finden Sie unter Parsen von XML-Daten.

Um zu verdeutlichen, wie sich die folgenden Optionen darauf auswirken, wie der Treiber die XML-Daten parst, wird für jede Option beschrieben, welche Auswirkungen sie in diesem Beispiel hat.

ignoreAttributes

Ob XML-Attribute beim Parsen ignoriert werden sollen. Wenn Sie die anderen Parser-Optionen verwenden möchten, müssen Sie ignoreAttributes: false einstellen.

Standard: true

Wenn false eingestellt ist, gibt der Treiber die Ausgabe wie folgt zurück. Beachten Sie, dass das Attribut id jetzt in der Ausgabe enthalten ist (standardmäßig stellt der Treiber den Attributnamen das Zeichen @_ voran):

{
    exhibit: {
      animal: [
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk",
          "@_id": "000001"
        },
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook",
          "@_id": "000002"
        }
      ],
      "@_name": "Polar Bear Plunge"
    }
}
alwaysCreateTextNode

Ob eine Eigenschaft mit dem Tag-Namen erstellt und der Wert direkt zugewiesen werden soll.

Standard: false

Wenn true eingestellt ist, gibt der Treiber die folgende Ausgabe zurück:

{
  exhibit: {
    animal: [
      {
        "scientificName": {
          "#text": "Ursus maritimus"
        },
        "englishName": {
          "#text": "Polar Bear"
        },
        "name": {
          "#text": "Kalluk"
        },
        "@_id": "000001"
      },
      {
        "scientificName": {
          "#text": "Ursus maritimus"
        },
        "englishName": {
          "#text": "Polar Bear"
        },
        "name": {
          "#text": "Chinook"
        },
        "@_id": "000002"
      }
      "@_name": "Polar Bear Plunge"
    ]
  }
}
attributeNamePrefix

Zeichenfolge, die den Attributnamen vorangestellt wird.

Standard: „@_“

Wenn "" eingestellt ist, um kein Präfix für Attributnamen anzugeben, gibt der Treiber die folgende Ausgabe zurück:

{
    exhibit: {
      animal: [
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk",
          "id": "000001"
        },
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook",
          "id": "000002"
        }
      ],
      "name": "Polar Bear Plunge"
    }
}
attributesGroupName

Gruppiert alle Attribute eines Tags unter einem bestimmten Eigenschaftsnamen.

Standard: nicht gesetzt

Wenn @@ eingestellt ist, um alle Tag-Attribute in einem Element namens @@, zu gruppieren, gibt der Treiber die folgende Ausgabe zurück:

{
    exhibit: {
      "@@": {
        "@_name": "Polar Bear Plunge"
      }
      animal: [
        {
          "@@": {
            "@_id": "000001"
          },
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk"
        },
        {
          "@@": {
            "@_id": "000002"
          },
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook"
        }
      ]
    }
}