Node.jsオプションリファレンス

新しい Connection オブジェクトを構築するときは、接続のオプション(例: 使用するアカウント識別子、ユーザー名など)を指定する JavaScript オブジェクトで渡します。次のセクションでは、設定できるオプションについて説明します。オプションを設定するには、 JavaScript オブジェクトのプロパティ名としてオプション名を指定します。

必須の接続オプション

account

使用する アカウント識別子

region廃止

アカウントが存在する リージョン の ID。

注釈

このオプションは廃止されており、下位互換性のためにのみここに含まれています。Snowflakeは、 アカウントロケーターを識別子として使用する で説明されているように、アカウント識別子へのリージョン埋め込み(例: 以下)に移行することをお勧めします。

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

加えて、 サーバーに対する認証のオプション を指定する必要があります。

認証オプション

application

Snowflakeに接続するクライアントアプリケーションの名前を指定します。

authenticator

ユーザーログイン認証情報の検証に使用する認証方式を指定します。これは、次のいずれかの値に設定できます。

説明

SNOWFLAKE

内部Snowflake認証方式を使用します。 password オプションも設定する必要があります。

EXTERNALBROWSER

自分のウェブブラウザーを使用 して、Okta、 AD FS、またはアカウントに定義されている他の SAML 2.0準拠の識別プロバイダー(IdP)で認証します。

https://<Oktaアカウント名>.okta.com

Oktaを介したネイティブ SSO の使用

OAUTH

認証には OAuth を使用します。また、 token オプションを OAuth トークンに設定する必要があります(以下を参照)。

SNOWFLAKE_JWT

キーペア認証を使用します。 キーペア認証とキーペアローテーションの使用 をご参照ください。

デフォルト値は SNOWFLAKE です。

認証の詳細については、 フェデレーション認証の管理/使用 および クライアント、ドライバー、およびコネクタ をご参照ください。

username

SnowflakeユーザーまたはIDプロバイダーのログイン名(例: Oktaのログイン名)。 authenticator オプションを SNOWFLAKESNOWFLAKE_JWT、 またはOktaアカウント用の Okta URL エンドポイント (例: https://<okta_account_name>.okta.com)に設定した場合は、このオプションを設定します。 authenticator オプションを設定しない場合は、この値を設定する必要があります。

password

ユーザーのパスワード。 authenticator オプションを SNOWFLAKE を設定するか、 Oktaアカウント用のOkta URL エンドポイント (例: https://<Oktaアカウント名>.okta.com)を設定した場合や、 authenticator オプションを未設定にした場合は、このオプションを設定します。

token

認証に使用する OAuth トークンを指定します。 authenticator オプションを OAUTH に設定する場合は、このオプションを設定します。

privateKey

キーペア認証の秘密キー( PEM 形式内)を指定します。詳細については、 キーペア認証とキーペアローテーションの使用 をご参照ください。

privateKeyPath

秘密キーファイル(例: rsa_key.p8)に対するローカルパスを指定します。詳細については、 キーペア認証とキーペアローテーションの使用 をご参照ください。

privateKeyPass

ファイルが暗号化されている場合に、秘密キーファイルを復号化するためのパスコードを指定します。詳細については、 キーペア認証とキーペアローテーションの使用 をご参照ください。

追加の接続オプション

accessUrl

Snowflakeに接続するための完全修飾エンドポイントを指定します。 accessUrl には、 https://myaccount.us-east-1.snowflakecomputing.com と同様に、完全なスキーマとホスト、およびオプションのポート番号が含まれます。

注釈

accessUrl オプションを使用する場合は、 account オプションで指定された値は使用されません。

browserActionTimeout

SSO 認証に関連するブラウザー操作のタイムアウトをミリ秒単位で指定します。デフォルト値は120000(ミリ秒)です。

clientSessionKeepAlive

デフォルトでは、クライアント接続は通常、最新のクエリが実行されてから約3~4時間後にタイムアウトします。

clientSessionKeepAlive オプションが true に設定されている場合、クエリが実行されなくても、サーバーへのクライアントの接続は無期限に維持されます。

このオプションのデフォルト設定は false です。

このオプションを true に設定する場合は、プログラムの終了時にプログラムがサーバーから明示的に切断されていることを確認します。切断せずに終了しないでください。

clientSessionKeepAliveHeartbeatFrequency

clientSessionKeepAlive がtrueの場合にのみ適用)

ハートビートメッセージの頻度(秒単位の間隔)を設定します。

接続ハートビートメッセージは、クエリを置き換え、接続のタイムアウトカウントダウンを再開するものと大まかに考えることができます。つまり、少なくとも4時間の非アクティブ後に接続がタイムアウトすると、ハートビートはタイマーをリセットし、最新のハートビート(またはクエリ)の少なくとも4時間後までタイムアウトが発生しないようにします。

デフォルト値は3600秒(1時間)です。有効な値の範囲は900~3600です。通常、タイムアウトは少なくとも4時間後に発生するため、通常、接続を維持するには1時間ごとのハートビートで十分です。3600秒未満のハートビート間隔が必要になることはほとんどありません。

database

接続後にセッションに使用するデフォルトのデータベース。

keepAlive

新しい接続リクエストを受信した直後に、ソケットでキープアライブ機能を有効にするかどうかを指定します。

デフォルトでは、 HTTP プロトコルはリクエスト毎に新しい TCP 接続を作成します。このパラメーターを有効にすると、ドライバーは、リクエストごとに新しい接続を作成する代わりに、複数のリクエストに対して接続を再利用することができます。

デフォルト値は true です。

noProxy

プロキシサーバーをバイパス(例: *.amazonaws.com が Amazon S3のアクセスをバイパス)して、ドライバーが直接接続する必要があるホストのリストを指定します。複数のホストの場合は、ホスト名をパイプ記号(|)で区切ります。アスタリスクをワイルドカードとして使用することもできます。例:

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

proxyHost

認証されたプロキシサーバーのホスト名を指定します。

proxyPassword

proxyUser により指定されたユーザーのパスワードを指定します。

proxyPort

認証されたプロキシサーバーのポートを指定します。

proxyProtocol

認証されたプロキシサーバーへの接続に使用するプロトコルを指定します。このプロパティを使用して HTTP (http または https)のプロトコルを指定します:。

proxyUser

認証されたプロキシサーバーへの接続に使用されるユーザー名を指定します。

role

接続後にセッションに使用するデフォルトのセキュリティロール。

schema

接続後にセッションに使用するデフォルトのスキーマ。

timeout

応答なしで接続を維持するためのミリ秒数。デフォルト: 60000(1分)。

warehouse

接続後にセッションに使用するデフォルトの仮想ウェアハウス。クエリの実行、データのロードなどに使用されます。

一部の接続オプションは、指定されたデータベースオブジェクト(データベース、スキーマ、ウェアハウス、またはロール)がシステムに既に存在することを前提としています。指定したオブジェクトが存在しない場合は、接続中にデフォルトは設定されません。

接続後、オプションの接続オプションはすべて USE <オブジェクト> コマンドで設定または上書きすることもできます。

構成オプション

arrayBindingThreshold

ドライバーが一括挿入操作で使用するバインドの最大数を設定します。デフォルト値は100000(100K)です。

resultPrefetch

クライアントが大きな結果セットをプリフェッチするために使用するスレッドの数。有効な値: 1~10。

rowMode

重複した列名を含む結果を返す方法を指定します。値には次が含まれます。

  • array: 結果セットを配列として返し、重複する列名を含めます。

  • object: 結果セットをオブジェクトとして返し、重複する列名を省きます。

  • object_with_renamed_duplicated_columns: 結果セットをオブジェクトとして返し、重複する名前にはサフィックスをつけて一意にします。

デフォルト値は object です。

xmlParserConfig オプション

ドライバーのバージョン1.7.0以降では、次の fast-xml-parser ライブラリ構成オプションを使用して、 XML コンテンツを持つ列をクエリするときにドライバーが XML ドキュメント属性を処理する方法をカスタマイズすることができます。

デフォルトでは、Node.jsドライバーは、クエリから XML データを返すときに XML 要素属性を無視します。たとえば、以下の XML コンテンツでは、 <animal> 要素に 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

デフォルトでは、Node.jsドライバーは結果セットを返すときに id 属性を無視し、以下の出力を返します。属性名と値が含まれていないことに注意してください。

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

これらのオプションの設定方法については、 XML データの解析 をご参照ください。

ドライバーが XML データを解析する方法に及ぼす影響を説明するために、各オプションの説明は、この例でどのように影響するかを示しています。

ignoreAttributes

解析時に XML 属性を無視するかどうか。他のパーサーオプションを使用する場合は、 ignoreAttributes: false にセットする必要があります。

デフォルト: true

false に設定すると、ドライバーは以下の出力を返します。 id 属性が出力に含まれるようになることに注意してください(デフォルトでは、ドライバーは属性名にプレフィックス @_ を付けます)。

{
    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

タグ名でプロパティを作成し、値を直接割り当てるかどうか。

デフォルト: false

true に設定すると、ドライバーは以下の出力を返します。

{
  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

属性名の前に付加する文字列。

デフォルト: "@_"

属性名のプレフィックスなしを指定するために "" を設定すると、ドライバーは以下の出力を返します。

{
    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

指定されたプロパティ名の下にタグのすべての属性をグループ化。

デフォルト: 未設定

@@, という名前の要素ですべてのタグ属性をグループ化するために @@ を設定すると、ドライバーは以下の出力を返します。

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