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

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

USERNAME_PASSWORD_MFA

多要素認証(MFA)を使用する MFA パスコードを使用する をご参照ください。

oauth_authorization_code

ウェブブラウザと選択した ID プロバイダ (IdP として Snowflake を含む) を使用して、 OAuth 認証コードを使用して手動で認証します。詳細については、 OAuth 2.0認証コードフローを使用する をご参照ください。

oauth_client_credentials

選択した ID プロバイダーで OAuth クライアント認証コードを使用して自動的に認証します (IdP として Snowflake はクライアント認証フローをサポートしていません)。詳細については、 OAuth 2.0クライアント認証情報フローを使用する をご参照ください。

デフォルト値は SNOWFLAKE です。

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

username

SnowflakeユーザーまたはIDプロバイダーのログイン名(例: Oktaのログイン名)。 authenticator オプションを SNOWFLAKESNOWFLAKE_JWT、 またはOktaアカウント用の Okta URL エンドポイント (例: https://<Oktaアカウント名>.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

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

oauthClientId

Snowflake統合用にIDプロバイダーが提供する client id の値(Snowflakeセキュリティ統合メタデータ)。

oauthClientSecret

IDプロバイダーがSnowflake統合用に提供する client secret の値(Snowflakeセキュリティ統合メタデータ)。

oauthAuthorizationUrl

認証コードをドライバーに提供する ID プロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

oauthTokenRequestUrl

ドライバーにアクセストークンを供給する ID プロバイダーのエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

oauthScope

ID プロバイダー承認リクエストで要求された範囲。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。

oauthRedirectUri

URI 認証コードのリダイレクトに使用します (Snowflake セキュリティ統合メタデータ)。デフォルト: http://127.0.0.1:{randomAvailablePort}/

passcode

ログインで多要素認証(MFA)を使用するときにDuoによって提供される passcode を指定します。詳細については、 MFA パスコードを使用する をご参照ください。

passcodeInPassword

MFA passcode をログインパスワードに埋め込むかどうかを指定します。 true の場合、 MFA パスコードが password の末尾に付加されます。デフォルト: false。詳細については、 MFA パスコードを使用する をご参照ください。

追加の接続オプション

accessUrl

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

注釈

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

browserActionTimeout

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

openExternalBrowserCallback

SSO 認証用のブラウザウィンドウを開きます。デフォルトでは、ドライバーはnpm open パッケージを使用します。例:

var connection = snowflake.createConnection({
  ...,
  openExternalBrowserCallback: () => {
    // your custom code to open browser window instead of our default implementation
  }
});
Copy
clientConfigFile

簡単なログ 機能に関連するクライアント構成ファイルへのパス。

clientRequestMFAToken

ドライバーが、サーバーに新しいトークンを要求する代わりに、ローカル認証情報ストレージ内の MFA トークンを認証に使用するかどうかを設定します。デフォルト: false

clientStoreTemporaryCredential

ドライバーが、サーバーに新しいトークンを要求する代わりに、ローカル認証情報ストレージ内の SSO トークンを認証に使用するかどうかを設定します。デフォルト: false

clientSessionKeepAlive

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

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

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

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

clientSessionKeepAliveHeartbeatFrequency

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

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

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

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

credentialCacheDir

トークン・キャッシングが有効な場合に、認証情報キャッシュを格納するディレクトリを設定します。デフォルト: ユーザーの $HOME ディレクトリ。

database

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

disableSamlUrlCheck

SAML レスポンスの検証チェックを無効にするかどうかを指定します。デフォルト: false

host

ドライバーが接続する必要のあるホストアドレス。

keepAlive

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

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

デフォルト値は true です。

noProxy

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

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

proxyHost

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

proxyPassword

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

proxyPort

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

proxyProtocol

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

proxyUser

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

role

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

schema

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

timeout

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

warehouse

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

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

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

構成オプション

arrayBindingThreshold

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

cwd

GET および PUt の操作に使用する現在の作業ディレクトリがコネクターディレクトリと異なる場合。

representNullAsStringNull

fetchAsString メソッドがnull値を返す方法を指定します。

  • true (有効): null値を文字列「NULL」として返します。

  • false (無効): null値を null として返します。

デフォルト: true (有効)

resultPrefetch

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

rowMode

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

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

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

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

デフォルト値は object です。

xmlParserConfig オプション

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

fast-xml-parser をダウンロードできます。

デフォルトでは、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"
        }
      ]
    }
}