Node.js 옵션 참조

Connection 오브젝트를 구성할 때 연결에 대한 옵션(예: 계정 식별자, 사용자 이름 등)을 지정하는 JavaScript 오브젝트를 전달합니다. 다음 섹션에서는 설정이 가능한 옵션에 대해 설명합니다. 옵션을 설정하려면 옵션의 이름을 JavaScript 오브젝트의 속성 이름으로 지정합니다.

필수 연결 옵션

account

계정 식별자.

region (사용되지 않음)

계정이 위치한 리전 의 ID입니다.

참고

이 옵션은 더 이상 사용되지 않으며 이전 버전과의 호환성을 위해서만 여기에 포함된 것입니다. 다음과 같은 계정 로케이터를 식별자로 사용하기 에 설명된 것처럼, 계정 식별자에 리전을 포함하도록 전환하는 것이 좋습니다.

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

또한, 서버를 인증하기 위한 옵션 도 지정해야 합니다.

인증 옵션

application

Snowflake에 연결하는 클라이언트 애플리케이션의 이름을 지정합니다.

authenticator

사용자 로그인 자격 증명을 확인하기 위해 사용할 인증자를 지정합니다. 인증자는 다음 값 중 1개로 설정할 수 있습니다.

설명

SNOWFLAKE

내부 Snowflake 인증자를 사용합니다. password 옵션도 설정해야 합니다.

EXTERNALBROWSER

웹 브라우저를 사용하여 Okta, AD FS 또는 계정에 정의된 기타 SAML 2.0 규격 ID 공급자(IdP)를 인증합니다.

https://<okta_계정_이름>.okta.com

Okta를 통해 기본 SSO를 사용합니다.

OAUTH

인증을 위해 OAuth를 사용합니다. OAuth 토큰에 token 옵션도 설정해야 합니다(아래 참조).

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

연결 후 세션에서 사용할 기본 데이터베이스입니다.

keepAlive

새 연결 요청을 받은 후 즉시 소켓에서 연결 유지 기능을 활성화할지 여부를 지정합니다.

기본적으로, HTTP 프로토콜은 모든 요청에 대해 새로운 TCP 연결을 생성합니다. 이 매개 변수를 활성화하면 드라이버가 각 요청에 대해 새 연결을 생성하는 대신 여러 요청에 대한 연결을 재사용할 수 있습니다.

기본값은 true 입니다.

noProxy

드라이버가 프록시 서버를 우회하여 직접 연결해야 하는 호스트 목록을 지정합니다(예: Amazon S3 액세스를 무시하는 *.amazonaws.com). 여러 호스트의 경우, 호스트 이름을 파이프 기호(|)로 구분합니다. 별표를 와일드카드로 사용할 수도 있습니다. 예:

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

proxyHost

인증된 프록시 서버의 호스트 이름을 지정합니다.

proxyPassword

proxyUser 로 지정된 사용자의 비밀번호를 지정합니다.

proxyPort

인증된 프록시 서버의 포트를 지정합니다.

proxyProtocol

인증된 프록시 서버에 연결하기 위해 사용되는 프로토콜을 지정합니다. 이 속성을 사용하여 http 또는 https 의 HTTP 프로토콜을 지정합니다.

proxyUser

인증된 프록시 서버에 연결하기 위해 사용되는 사용자 이름을 지정합니다.

role

연결 후에 세션에서 사용할 기본 보안 역할입니다.

schema

연결 후 세션에서 사용할 기본 스키마입니다.

timeout

응답이 없는 동안 연결을 유지하는 시간(밀리초)입니다. 기본값: 60,000(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"
        }
      ]
    }
}