Référence des options Node.js

Lors de la construction d’un nouvel objet Connection vous transmettez un objet JavaScript qui spécifie les options de la connexion (par exemple votre identificateur de compte, votre nom d’utilisateur, etc.). Les sections suivantes décrivent les options que vous pouvez définir. Pour définir une option, spécifiez le nom de l’option comme nom de propriété dans l’objet JavaScript.

Options de connexion requises

account

Votre identificateur de compte.

region (Obsolète)

Spécifie l’ID de la région où se trouve votre compte.

Note

Cette option est obsolète et n’est incluse ici que pour des raisons de rétrocompatibilité. Snowflake recommande de passer à l’intégration de la région dans l’identificateur du compte, comme décrit dans Utilisation d’un localisateur de compte comme identificateur, de la manière suivante.

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

En outre, vous devez spécifier les options d’authentification au serveur.

Options d’authentification

application

Spécifie le nom de l’application client qui se connecte à Snowflake.

authenticator

Spécifie l’authentificateur à utiliser pour vérifier les identifiants de connexion utilisateur. Vous pouvez définir cette option sur l’une des valeurs suivantes :

Valeur

Description

SNOWFLAKE

Utilisez l’authentificateur interne Snowflake. Vous devez également définir l’option password.

EXTERNALBROWSER

Utilisez votre navigateur Web pour vous authentifier avec Okta, des ADFS ou tout autre fournisseur d’identification conforme à SAML 2.0 (IdP) qui a été défini pour votre compte.

https://<nom_compte_okta>.okta.com

Utilisez le SSO natif via Okta.

OAUTH

Utilisez OAuth pour l’authentification. Vous devez également définir l’option token sur le jeton OAuth (voir ci-dessous).

SNOWFLAKE_JWT

Utilisez l’authentification par paire de clés. Voir Utilisation de l’authentification par paire de clés et rotation de paires de clés.

La valeur par défaut est SNOWFLAKE.

Pour plus d’informations sur l’authentification, voir Gestion/Utilisation de l’authentification fédérée et Clients, pilotes et connecteurs.

username

Le nom de connexion de votre utilisateur Snowflake ou de votre fournisseur d’identité (par exemple, votre nom de connexion pour Okta). Définissez cette option si vous définissez l’option authenticator sur SNOWFLAKE, SNOWFLAKE_JWT ou le point de terminaison de l’URL Okta de votre compte Okta (par ex. https://<nom_compte_okta>.okta.com). Si vous ne définissez pas l’option authenticator, vous devez définir cette valeur.

password

Mot de passe de l’utilisateur. Définissez cette option si vous définissez l’option authenticator sur SNOWFLAKE ou le point de terminaison de l” URL Okta pour votre compte Okta (par ex. https://<nom_compte_okta>.okta.com) ou si vous avez laissé l’option authenticator non définie.

token

Spécifie le jeton OAuth à utiliser pour l’authentification. Définissez cette option si vous avez défini l’option authenticator sur OAUTH.

privateKey

Spécifie la clé privée (au format PEM) pour l’authentification par paire de clés. Pour plus de détails, voir Utilisation de l’authentification par paire de clés et rotation de paires de clés.

privateKeyPath

Spécifie le chemin local au fichier de clé privée (par exemple, rsa_key.p8). Pour plus de détails, voir Utilisation de l’authentification par paire de clés et rotation de paires de clés.

privateKeyPass

Spécifie le code d’accès pour déchiffrer le fichier de la clé privée, si le fichier est chiffré. Pour plus de détails, voir Utilisation de l’authentification par paire de clés et rotation de paires de clés.

Options de connexion supplémentaires

accessUrl

Spécifie un point de terminaison entièrement qualifié pour se connecter à Snowflake. L” accessUrl comprend le schéma complet et l’hôte, ainsi qu’un numéro de port facultatif, similaire à https://myaccount.us-east-1.snowflakecomputing.com.

Note

Lors de l’utilisation de l’option accessUrl, la valeur spécifiée dans l’option account n’est pas utilisée.

browserActionTimeout

Spécifie le délai d’attente, en millisecondes, pour les activités du navigateur liées à l’authentification SSO. La valeur par défaut est de 120 000 (millisecondes).

clientSessionKeepAlive

Par défaut, les connexions client expirent généralement environ 3 à 4 heures après l’exécution de la requête la plus récente.

Si l’option clientSessionKeepAlive est définie sur true, la connexion du client au serveur sera maintenue indéfiniment, même si aucune requête n’est exécutée.

Le paramètre par défaut de cette option est false.

Si vous définissez cette option sur true, assurez-vous que votre programme se déconnecte explicitement du serveur à la fin du programme. Ne quittez pas sans vous déconnecter.

clientSessionKeepAliveHeartbeatFrequency

(Cette option ne s’applique que lorsque clientSessionKeepAlive est true)

Définit la fréquence (l’intervalle en secondes) entre les messages de pulsation.

Vous pouvez vaguement penser qu’un message de pulsation de connexion se substitue à une requête et redémarre le compte à rebours du délai d’attente pour la connexion. En d’autres termes, si la connexion expire après au moins 4 heures d’inactivité, la pulsation réinitialise le chronomètre afin que l’expiration ne se produise pas au moins 4 heures après la dernière pulsation (ou requête).

La valeur par défaut est de 3 600 secondes (une heure). La plage de valeurs valide est 900 - 3600. Comme les expirations surviennent généralement après au moins 4 heures, une pulsation toutes les heures est normalement suffisante pour maintenir la connexion en vie. Des intervalles de pulsation inférieurs à 3 600 secondes sont rarement nécessaires ou utiles.

database

La base de données par défaut à utiliser pour la session après la connexion.

host

Adresse de l’hôte à laquelle le pilote doit se connecter.

keepAlive

Spécifie si la fonctionnalité de maintien de la session doit être activée sur le socket immédiatement après la réception d’une nouvelle demande de connexion.

Par défaut, le protocole HTTP crée une nouvelle connexion TCP pour chaque requête. L’activation de ce paramètre permet au pilote de réutiliser les connexions pour plusieurs requêtes au lieu de créer de nouvelles connexions pour chaque requête.

La valeur par défaut est true.

noProxy

Spécifie les listes des hôtes auxquels le pilote doit se connecter directement, sans passer par le serveur proxy (par ex. *.amazonaws.com pour contourner l’accès à Amazon S3). Pour plusieurs hôtes, séparez les noms d’hôtes par un symbole de barre verticale (|). Vous pouvez également utiliser un astérisque comme caractère générique. Par exemple :

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

proxyHost

Spécifie le nom d’hôte d’un serveur proxy authentifié.

proxyPassword

Indique le mot de passe de l’utilisateur spécifié par proxyUser.

proxyPort

Spécifie le port d’un serveur proxy authentifié.

proxyProtocol

Spécifie le protocole utilisé pour se connecter au serveur proxy authentifié. Utilisez cette propriété pour spécifier le protocole HTTP : http ou https.

proxyUser

Spécifie le nom d’utilisateur utilisé pour se connecter à un serveur proxy authentifié.

role

Le rôle de sécurité par défaut à utiliser pour la session après la connexion.

schema

Le schéma par défaut à utiliser pour la session après la connexion.

timeout

Nombre de millisecondes pour maintenir la connexion en vie sans réponse. Valeur par défaut : 60 000 (1 minute).

warehouse

L’entrepôt virtuel par défaut à utiliser pour la session après la connexion. Utilisé pour effectuer des requêtes, charger des données, etc.

Certaines options de connexion supposent que l’objet de base de données spécifié (base de données, schéma, entrepôt ou rôle) existe déjà dans le système. Si l’objet spécifié n’existe pas, un réglage par défaut n’est pas défini lors de la connexion.

Après la connexion, toutes les options de connexion optionnelles peuvent également être réglées ou remplacées par la commande USE <objet>.

Options de configuration

arrayBindingThreshold

Définit le nombre maximum de liens que le pilote utilise dans une opération d’insertion en masse. La valeur par défaut est de 100 000.

resultPrefetch

Nombre de threads à utiliser par les clients pour la préextraction de grands jeux de résultats. Valeurs valides : 1-10.

rowMode

Indique comment renvoyer les résultats qui contiennent des noms de colonnes dupliqués. Les valeurs incluent :

  • array : renvoie le jeu de résultats sous forme de tableau, y compris les noms de colonnes dupliqués.

  • object : renvoie le jeu de résultats sous forme d’objet, en omettant les noms de colonnes dupliqués.

  • object_with_renamed_duplicated_columns : renvoie le jeu de résultats sous forme d’objet, tout en ajoutant des suffixes aux noms dupliqués pour les rendre uniques.

La valeur par défaut est object.

Options xmlParserConfig

À partir de la version 1.7.0 du pilote, vous pouvez utiliser les options de configuration de la bibliothèque fast-xml-parser suivantes pour personnaliser la façon dont le pilote traite les attributs du document XML lors de l’interrogation de colonnes avec du contenu XML.

Par défaut, le pilote Node.js ignore les attributs des éléments XML lorsqu’il renvoie des données XML à partir d’une requête. Par exemple, dans le contenu XML suivant, l’élément <animal> comprend un 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

Par défaut, lorsque le pilote Node.js renvoie le jeu de résultats, il ignore l’attribut id et renvoie la sortie suivante. Vous remarquerez que les noms et les valeurs des attributs ne sont pas inclus.

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

Pour obtenir des informations sur la définition de ces options, reportez-vous à Analyse de données XML.

Pour illustrer la façon dont les options suivantes affectent la façon dont le pilote affecte l’analyse des données XML, la description de chaque option montre comment elle affecte cet exemple.

ignoreAttributes

Indique si les attributs XML doivent être ignorés lors de l’analyse. Si vous souhaitez utiliser les autres options de l’analyseur, vous devez définir ignoreAttributes: false.

Par défaut : true

Lorsqu’il est défini sur false, le pilote renvoie la sortie comme suit. Remarquez que l’attribut id est maintenant inclus dans la sortie (par défaut, le pilote préfixe les noms d’attributs par @_) :

{
    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

Indique s’il faut créer une propriété avec le nom de la balise et lui attribuer directement la valeur.

Par défaut : false

Lorsqu’il est défini sur true, le pilote renvoie la sortie comme suit :

{
  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

Chaîne à ajouter aux noms d’attributs.

Valeur par défaut : « @_ »

Lorsqu’il est défini sur "" pour spécifier l’absence de préfixe pour les noms d’attributs, le pilote renvoie la sortie comme suit :

{
    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

Regroupe tous les attributs d’une balise sous un nom de propriété spécifié.

Valeur par défaut : non définie

Lorsqu’il est défini sur @@ pour regrouper tous les attributs d’une balise dans un élément nommé @@, , le pilote renvoie la sortie suivante :

{
    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"
        }
      ]
    }
}