Snowflake CLI 구성하기

Snowflake CLI 는 이름이 config.toml 인 전역 구성 파일을 사용하여 Snowflake CLI 에 대한 연결 및 로그를 구성합니다. 파일이 없는 경우 모든 snow 명령을 처음 실행하면 빈 config.toml 파일이 자동으로 생성되며, 이 파일을 원하는 연결로 채울 수 있습니다. toml 파일 형식에 대한 자세한 내용은 TOML (Tom’s Obvious Minimal Language) 을 참조하십시오. Snowflake Python 라이브러리는 현재 TOML 버전 1.0.0을 지원합니다.

config.toml 에서는 다음 섹션을 지원합니다.

  • 연결을 정의하고 관리하기 위한 [연결]

  • 로그 파일에 저장되는 메시지의 유형을 구성하기 위한 [로그]

Snowflake CLI 구성 파일의 구조는 다음과 같습니다.

[connections]
[connections.myconnection]
account = "myaccount"
user = "jdoe"
...

[connections.testingconnection]
account = "myaccount"
user = "jdoe"
...

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

.toml 구성 파일의 위치

기본적으로 Snowflake CLI 는 ~/.snowflake 디렉터리에서 config.toml 파일을 찾거나 이 디렉터리가 없는 경우 아래 목록과 같이 시스템별 위치에서 찾습니다. --config-file 플래그 또는 SNOWFLAKE_HOME 환경 변수를 사용하여 사용할 구성 파일을 지정할 수도 있습니다.

  • --config-file 옵션(예: snow --config-file ./my-config-file-path)을 지정하면 Snowflake CLI 는 지정된 구성 파일을 사용합니다.

  • SNOWFLAKE_HOME 환경 변수가 설정되어 있으면 Snowflake CLI 는 이 변수에 지정된 위치를 사용합니다.

  • 컴퓨터에 ~/.snowflake 디렉터리가 있으면 Snowflake CLI 는 ~/.snowflake/config.toml 파일을 사용합니다.

  • 그렇지 않으면 Snowflake CLI 는 운영 체제를 기반으로 다음 위치 중 하나에 있는 config.toml 파일을 사용합니다.

    • Linux: ~/.config/snowflake/config.toml. 하지만 XDG 변수를 사용하여 업데이트할 수 있습니다.

    • Windows: %USERPROFILE%\AppData\Local\snowflake\config.toml

    • Mac: ~/Library/Application Support/snowflake/config.toml

참고

MacOS 및 Linux 시스템의 경우 Snowflake CLI 는 config.toml 파일의 파일 권한을 파일 소유자에 대해서만 읽기 및 쓰기로 제한하도록 요구합니다. 파일에 필요한 파일 권한을 설정하려면 다음 명령을 실행합니다.

chown $USER config.toml
chmod 0600 config.toml
Copy

다른 구성 파일 선택

지속적 통합 및 지속적 배포(CI/CD) 환경과 같은 일부 상황에서는 Snowflake 기본 구성 파일에 가능한 모든 구성을 정의하는 대신 테스트 및 배포 파이프라인을 위한 전용 구성 파일을 만드는 것이 선호될 수 있습니다.

기본 파일과 다른 구성 파일을 사용하려면 다음과 같이 snow 명령에 --config-file 옵션을 사용하면 됩니다.

snow --config-file="my_config.toml" connection test
Copy

시스템 환경 변수 지원

Snowflake CLI 는 시스템 환경 변수를 사용하여 config.toml 파일에 정의된 매개 변수 값을 재정의할 수 있도록 다음 형식을 지원합니다.

SNOWFLAKE_<config-section>_<variable>=<value>
Copy

여기서,

  • <config_section> 은 구성 파일에서 마침표(.)가 밑줄(_)로 대체된 섹션의 이름(예: CLI_LOGS)입니다.

  • 변수는 해당 섹션에 정의된 변수의 이름입니다(예: path).

몇 가지 예는 다음과 같습니다.

  • config.toml 파일의 [cli.logs] 섹션에서 path 매개 변수를 재정의합니다.

    export SNOWFLAKE_CLI_LOGS_PATH="/Users/jondoe/snowcli_logs"
    
    Copy
  • myconnection 연결의 비밀번호를 설정합니다.

    export SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD="*******"
    
    Copy
  • 기본 연결 이름을 설정합니다.

    export SNOWFLAKE_DEFAULT_CONNECTION_NAME="myconnection"
    
    Copy

로깅 구성

기본적으로, Snowflake CLI 는 INFO, WARNINGERROR 수준 메시지를 로그 파일에 자동으로 저장합니다. 로깅을 비활성화하거나 사용자 지정하려면 config.toml 파일에 [cli.logs] 섹션을 만듭니다.

[cli.logs]
save_logs = true
level = "info"
path = "/home/<username>/.snowflake/logs"
Copy

여기서,

  • save_logs 는 로그를 파일에 저장할지 여부를 나타냅니다. 기본값: true.

  • level 는 로그 파일에 저장할 메시지 수준을 지정합니다. 선택한 수준 아래의 모든 수준을 포함하는 다음 수준 중에서 선택합니다.

    • debug

      경고

      debug 로깅 수준으로 전환하면 실행된 SQL 쿼리와 같은 민감한 정보가 노출될 수 있습니다. 이 수준을 활성화할 때는 주의해야 합니다.

    • info

    • warning

    • error

    기본값: info

  • path 는 로그 파일을 저장할 절대 경로를 지정합니다. 경로 형식은 운영 체제에 따라 다음과 같이 달라집니다.

    • Linux: path = "/home/<your_username>/.config/snowflake/logs"

    • MacOS: path = "/Users/<your_username>/Library/Application Support/snowflake/logs"

    • Windows: path = "C:\\Users\\<your_username>\\AppData\\Local\\snowflake\\logs"

    지정하지 않으면, 명령은 기본 logs 파일 위치에 config.toml 디렉터리를 생성합니다.

config.toml 이 자동으로 생성된 경우, config.toml 파일에는 기본값으로 채워진 `` |cli.logs| `` 섹션이 포함됩니다.

그림과 같이 하루 동안의 로그가 snowflake-cli.log 파일에 추가되고 나중에 이름이 snowflake-cli.log.YYYY-MM-DD 로 변경됩니다.

ls logs/
Copy
snowflake-cli.log            snowflake-cli.log.2024-10-22