Node.jsオプションリファレンス¶
新しい Connection
オブジェクトを構築するときは、接続のオプション(例: 使用するアカウント識別子、ユーザー名など)を指定する JavaScript オブジェクトで渡します。次のセクションでは、設定できるオプションについて説明します。オプションを設定するには、 JavaScript オブジェクトのプロパティ名としてオプション名を指定します。
接続オプション
その他のオプション
必須の接続オプション¶
account
使用する アカウント識別子。
region
(廃止)アカウントが存在する リージョン の ID。
注釈
このオプションは廃止されており、下位互換性のためにのみここに含まれています。Snowflakeは、 アカウントロケーターを識別子として使用する で説明されているように、アカウント識別子へのリージョン埋め込み(例: 以下)に移行することをお勧めします。
var connection = snowflake.createConnection({ account: "myaccount.us-east-2", username: "myusername", password: "mypassword" });
加えて、 サーバーに対する認証のオプション を指定する必要があります。
認証オプション¶
application
Snowflakeに接続するクライアントアプリケーションの名前を指定します。
authenticator
ユーザーログイン認証情報の検証に使用する認証方式を指定します。これは、次のいずれかの値に設定できます。
値
説明
SNOWFLAKE
内部Snowflake認証方式を使用します。
password
オプションも設定する必要があります。EXTERNALBROWSER
自分のウェブブラウザーを使用 して、Okta、 AD FS、またはアカウントに定義されている他の SAML 2.0準拠の識別プロバイダー(IdP)で認証します。
https://<Oktaアカウント名>.okta.com
OAUTH
認証には OAuth を使用します。また、
token
オプションを OAuth トークンに設定する必要があります(以下を参照)。SNOWFLAKE_JWT
キーペア認証を使用します。 キーペア認証とキーペアローテーションの使用 をご参照ください。
デフォルト値は
SNOWFLAKE
です。認証の詳細については、 フェデレーション認証の管理/使用 および クライアント、ドライバー、およびコネクタ をご参照ください。
username
SnowflakeユーザーまたはIDプロバイダーのログイン名(例: Oktaのログイン名)。
authenticator
オプションをSNOWFLAKE
、SNOWFLAKE_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
接続後にセッションに使用するデフォルトのデータベース。
host
ドライバーが接続する必要のあるホストアドレス。
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>
デフォルトでは、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" } ] } }