20분만에 Snowflake 시작하기

소개

이 자습서에서는 Snowflake 명령줄 클라이언트인 SnowSQL 을 사용하여 다음과 같은 주요 개념과 작업을 소개합니다.

  • Snowflake 오브젝트 생성 — 데이터 저장을 위한 데이터베이스와 테이블을 생성합니다.

  • 데이터 로딩—테이블에 로드할 수 있는 작은 샘플 CSV 데이터 파일을 제공합니다.

  • 쿼리—샘플 쿼리를 살펴봅니다.

참고

Snowflake에서는 데이터를 로드하고 쿼리를 실행하기 위해 가상 웨어하우스 가 필요합니다. 실행 중인 가상 웨어하우스에서는 Snowflake 크레딧이 사용되지만, 이 자습서는 30분 이내에 완료할 수 있으므로 이 자습서에서는 최소한의 크레딧만 사용됩니다. 또한 Snowflake는 이 자습서의 샘플 데이터에 사용되는 디스크상의 저장소에 대해 최소 금액을 청구합니다. 하지만 이 자습서에서는 테이블을 삭제하고 저장소 비용을 최소화하는 절차를 제공합니다. 30일 평가판 계정을 사용 중인 경우 계정에서 무료 크레딧을 제공하므로 비용이 발생하지 않습니다. 웨어하우스 크기 및 비용에 대한 자세한 내용은 웨어하우스 크기 섹션을 참조하십시오.

알아볼 내용

이 자습서에서는 다음 방법을 배웁니다.

  • Snowflake 오브젝트 생성—데이터 저장을 위한 데이터베이스와 테이블을 생성합니다.

  • SnowSQL 설치—Snowflake 명령줄 쿼리 도구인 SnowSQL을 설치하고 사용합니다.

    Visual Studio Code 사용자는 SnowSQL 대신 Snowflake Extension for Visual Studio Code 사용을 고려할 수 있습니다.

  • CSV 데이터 파일 로드—다양한 메커니즘을 사용하여 CSV 파일에서 테이블로 데이터를 로드합니다.

  • 샘플 쿼리 작성 및 실행—새로 로드된 데이터에 대해 다양한 쿼리를 작성하고 실행합니다.

전제 조건

이 자습서에서는 데이터를 로드 및 쿼리하기 위한 데이터베이스, 테이블 및 가상 웨어하우스가 필요합니다. 이러한 Snowflake 오브젝트를 생성하려면 필요한 액세스 제어 권한을 보유한 역할이 있는 Snowflake 사용자가 필요합니다. 또한, 자습서에서 SQL 문을 실행하기 위해 SnowSQL 이 필요합니다. 마지막으로, 이 자습서에는 로드할 샘플 데이터가 있는 CSV 파일이 필요합니다.

기존 Snowflake 웨어하우스, 데이터베이스, 테이블 및 사용자의 자체 로컬 데이터 파일을 사용하여 이 자습서를 완료할 수 있지만, 제공되는 데이터 세트와 Snowflake 오브젝트를 사용하는 것이 좋습니다.

이 자습서에 대해 Snowflake를 설정하려면 다음을 완료한 후 계속하십시오.

  1. 사용자 만들기

    데이터베이스, 테이블, 가상 웨어하우스를 만들려면 이러한 오브젝트를 만들 권한을 부여하는 역할이 있는 Snowflake 사용자로 로그인해야 합니다.

    • 30일 평가판 계정을 사용 중인 경우 해당 계정에 대해 생성된 사용자로 로그인할 수 있습니다. 이 사용자는 오브젝트 생성에 필요한 권한이 있는 역할을 가집니다.

    • Snowflake 사용자가 없으면 이 자습서를 수행할 수 없습니다. 사용자를 생성할 수 있는 역할이 없는 경우 사용자를 생성할 수 있는 사람에게 이 단계를 수행해 달라고 요청하십시오. ACCOUNTADMIN 또는 SECURITYADMIN 역할이 있는 사용자가 사용자를 생성할 수 있습니다.

  2. SnowSQL 설치하기

    SnowSQL을 설치하려면 SnowSQL 설치하기 섹션을 참조하십시오.

  3. 샘플 데이터 파일 다운로드하기

    이 자습서의 지침에 따라 Snowflake에서 제공하는 CSV 형식의 샘플 직원 데이터 파일을 다운로드합니다.

    샘플 데이터 파일을 다운로드하고 압축을 푸는 방법:

    1. 샘플 데이터 파일 세트를 다운로드합니다. 아카이브 파일 getting-started.zip 의 이름을 오른쪽 마우스 버튼으로 클릭하고 링크/파일을 로컬 파일 시스템에 저장합니다.

    2. 샘플 파일의 압축을 풉니다. 자습서에서는 다음 디렉터리 중 하나에 파일의 압축을 푼 것으로 가정합니다.

    • Linux/macOS: /tmp

    • Windows: C:\\temp

    각 파일에는 데이터 레코드가 5개 있습니다. 이 데이터에서는 쉼표(,) 문자를 필드 구분 기호로 사용합니다. 다음은 예시 레코드입니다.

    Althea,Featherstone,afeatherstona@sf_tuts.com,"8172 Browning Street, Apt B",Calatrava,7/12/2017
    
    Copy

각 레코드에서 필드를 구분하는 쉼표의 앞 또는 뒤에는 공백이 없습니다. 이는 Snowflake가 CSV 데이터를 로드할 때의 기본 설정입니다.

SnowSQL 에 로그인하기

SnowSQL 을 받은 후 SnowSQL을 시작하여 Snowflake에 연결합니다.

  1. 명령줄 창을 엽니다.

  2. 다음과 같이 SnowSQL을 시작합니다.

    $ snowsql -a <account_identifier> -u <user_name>
    
    Copy

    여기서

    • <account_identifier> 는 Snowflake 계정에 대한 고유 식별자입니다.

      계정 식별자 의 선호 형식은 다음과 같습니다.

      organization_name-account_name

      Snowflake 조직 및 계정의 이름입니다. 자세한 내용은 형식 1(기본 설정): 조직의 계정 이름 섹션을 참조하십시오.

    • <사용자_이름> 은 Snowflake 사용자에 대한 로그인 이름입니다.

    참고

    계정에 정의된 ID 공급자(IdP)가 있는 경우 다음 예에서 볼 수 있는 것처럼 웹 브라우저를 사용하여 비밀번호 대신 인증할 수 있습니다.

    $ snowsql -a <account_identifier> -u <user_name> --authenticator externalbrowser
    
    Copy

    자세한 내용은 웹 브라우저에서 페더레이션 인증/SSO 사용하기 섹션을 참조하십시오.

  3. SnowSQL에서 메시지를 표시하면, Snowflake 사용자의 비밀번호를 입력합니다.

로그인에 성공하면 SnowSQL은 현재 웨어하우스, 데이터베이스, 스키마를 포함하는 명령 프롬프트를 표시합니다.

참고

계정이 잠겨 계정 식별자를 얻을 수 없는 경우 평가판 계정에 가입할 때 Snowflake에서 보내준 환영 이메일에서 계정 식별자를 찾거나 ORGADMIN 의 도움을 받아 계정 세부 정보 를 얻을 수 있습니다. 환영 이메일에서 locator, cloud, region 의 값을 확인할 수도 있습니다.

Snowflake 사용자에게 기본 웨어하우스, 데이터베이스, 스키마가 없거나 기본 웨어하우스, 데이터베이스, 스키마를 지정하도록 SnowSQL을 구성하지 않은 경우 프롬프트에 no warehouse, no database, no schema 가 표시됩니다. 예:

user-name#(no warehouse)@(no database).(no schema)>
Copy

이 프롬프트는 현재 세션에 대해 선택된 웨어하우스, 데이터베이스, 스키마가 없음을 나타냅니다. 다음 단계에서 이러한 오브젝트를 생성합니다. 이 자습서의 다음 단계에 따라 이러한 오브젝트를 생성하면 프롬프트가 자동으로 업데이트되면서 이들 오브젝트의 이름을 포함합니다.

자세한 내용은 SnowSQL을 통해 연결하기 섹션을 참조하십시오.

Snowflake 오브젝트 만들기

이 단계 중에 다음 Snowflake 오브젝트를 생성합니다.

  • 데이터베이스(sf_tuts)와 테이블(emp_basic)입니다. 샘플 데이터를 이 테이블에 로드합니다.

  • 가상 웨어하우스 (sf_tuts_wh)입니다. 이 웨어하우스는 테이블에 데이터를 로드하고 테이블을 쿼리하는 데 필요한 컴퓨팅 리소스를 제공합니다. 이 자습서에서는 X-Small 웨어하우스를 생성합니다.

이 자습서 완료 시 이러한 오브젝트를 제거합니다.

데이터베이스 만들기

CREATE DATABASE 명령을 사용하여 sf_tuts 데이터베이스를 만듭니다.

CREATE OR REPLACE DATABASE sf_tuts;
Copy

이 자습서에서는 새 스키마를 생성하는 대신 각 데이터베이스에 사용할 수 있는 기본 스키마(public)를 사용합니다.

방금 생성한 데이터베이스와 스키마는 현재 SnowSQL 명령 프롬프트에 반영된 대로 현재 세션에서 사용 중입니다. 컨텍스트 함수를 사용하여 이 정보를 얻을 수도 있습니다.

SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();
Copy

다음은 예시 결과입니다.

+--------------------+------------------+
| CURRENT_DATABASE() | CURRENT_SCHEMA() |
|--------------------+------------------|
| SF_TUTS            | PUBLIC           |
+--------------------+------------------+

테이블 만들기

CREATE TABLE 명령을 사용하여 sf_tuts.public 에 이름이 emp_basic 인 테이블을 생성합니다.

CREATE OR REPLACE TABLE emp_basic (
   first_name STRING ,
   last_name STRING ,
   email STRING ,
   streetaddress STRING ,
   city STRING ,
   start_date DATE
   );
Copy

테이블의 열 수, 위치 및 데이터 타입은 이 자습서의 다음 단계에서 스테이징하는 샘플 데이터 CSV 데이터 파일의 필드에 해당합니다.

가상 웨어하우스 만들기

CREATE WAREHOUSE 명령을 사용하여 이름이 sf_tuts_wh 인 X-Small 웨어하우스를 생성합니다.

CREATE OR REPLACE WAREHOUSE sf_tuts_wh WITH
   WAREHOUSE_SIZE='X-SMALL'
   AUTO_SUSPEND = 180
   AUTO_RESUME = TRUE
   INITIALLY_SUSPENDED=TRUE;
Copy

sf_tuts_wh 웨어하우스는 처음에는 일시 중단되지만 이 DML 문은 AUTO_RESUME = true 도 설정합니다. AUTO_RESUME 설정은 컴퓨팅 리소스가 필요한 SQL 문이 실행될 때 웨어하우스가 자동으로 시작되게 합니다.

생성한 웨어하우스는 이제 현재 세션에 사용됩니다. 이 정보는 SnowSQL 명령 프롬프트에 표시됩니다. 다음 컨텍스트 함수를 사용하여 웨어하우스의 이름을 불러올 수도 있습니다.

SELECT CURRENT_WAREHOUSE();
Copy

다음은 예시 결과입니다.

+---------------------+
| CURRENT_WAREHOUSE() |
|---------------------|
| SF_TUTS_WH          |
+---------------------+

데이터 파일 스테이징하기

Snowflake 스테이지는 테이블에서 데이터를 로딩 및 언로딩하는 데 사용하는 클라우드 저장소의 위치입니다. Snowflake가 지원하는 스테이지의 타입은 다음과 같습니다.

  • 내부 스테이지 — Snowflake 내에서 데이터 파일을 내부적으로 저장하는 데 사용됩니다. Snowflake의 각 사용자와 테이블은 기본적으로 데이터 파일을 스테이징하기 위한 내부 스테이지를 가져옵니다.

  • 외부 스테이지 — Amazon S3, Google Cloud Storage 또는 Microsoft Azure 외부에 데이터 파일을 저장하는 데 사용됩니다. 데이터가 이러한 클라우드 저장소 서비스에 이미 저장되어 있는 경우 외부 스테이지를 사용하여 Snowflake 테이블에 데이터를 로딩할 수 있습니다.

이 자습서에서는 이전에 만든 emp_basic 테이블의 내부 스테이지에 (전제 조건 에서 다운로드한) 샘플 데이터 파일을 업로드합니다. PUT 명령을 사용하여 샘플 데이터 파일을 그 스테이지에 업로드합니다.

샘플 데이터 파일 스테이징하기

SnowSQL 에서 PUT 명령을 실행하여 생성한 emp_basic 테이블용으로 제공된 테이블 스테이지로 로컬 데이터 파일을 업로드합니다.

PUT file://<file-path>[/\]employees0*.csv @sf_tuts.public.%emp_basic;
Copy

예:

  • Linux 또는 macOS

    PUT file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;
    
    Copy
  • Windows

    PUT file://C:\temp\employees0*.csv @sf_tuts.public.%emp_basic;
    
    Copy

명령을 좀 더 자세히 살펴보겠습니다.

  • file://<file-path>[/\]employees0*.csv 는 스테이징할 로컬 머신의 파일 이름 및 전체 디렉터리 경로를 지정합니다. 파일 시스템 와일드카드가 허용되며 여러 파일이 패턴에 맞는 경우 모두 표시됩니다.

  • @<네임스페이스>.%<테이블_이름> 은 지정된 테이블에 스테이지가 사용됨을 나타내고, 이 경우에는 emp_basic 테이블입니다.

이 명령은 스테이징된 파일을 보여주는 다음 결과를 반환합니다.

+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+
| source          | target             | source_size | target_size | source_compression | target_compression | status   | message |
|-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------|
| employees01.csv | employees01.csv.gz |         360 |         287 | NONE               | GZIP               | UPLOADED |         |
| employees02.csv | employees02.csv.gz |         355 |         274 | NONE               | GZIP               | UPLOADED |         |
| employees03.csv | employees03.csv.gz |         397 |         295 | NONE               | GZIP               | UPLOADED |         |
| employees04.csv | employees04.csv.gz |         366 |         288 | NONE               | GZIP               | UPLOADED |         |
| employees05.csv | employees05.csv.gz |         394 |         299 | NONE               | GZIP               | UPLOADED |         |
+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+

TARGET_COMPRESSION 열에 표시된 것과 같이 PUT 명령은 기본적으로 gzip 을 사용하여 파일을 압축합니다.

스테이징된 파일 나열(선택 사항)

LIST 명령을 사용하여 스테이징된 파일을 나열할 수 있습니다.

LIST @sf_tuts.public.%emp_basic;
Copy

다음은 예시 결과입니다.

+--------------------+------+----------------------------------+------------------------------+
| name               | size | md5                              | last_modified                |
|--------------------+------+----------------------------------+------------------------------|
| employees01.csv.gz |  288 | a851f2cc56138b0cd16cb603a97e74b1 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees02.csv.gz |  288 | 125f5645ea500b0fde0cdd5f54029db9 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees03.csv.gz |  304 | eafee33d3e62f079a054260503ddb921 | Tue, 9 Jan 2018 15:31:45 GMT |
| employees04.csv.gz |  304 | 9984ab077684fbcec93ae37479fa2f4d | Tue, 9 Jan 2018 15:31:44 GMT |
| employees05.csv.gz |  304 | 8ad4dc63a095332e158786cb6e8532d0 | Tue, 9 Jan 2018 15:31:44 GMT |
+--------------------+------+----------------------------------+------------------------------+

데이터를 대상 테이블에 복사하기

스테이징된 데이터를 대상 테이블에 로드하려면 COPY INTO <테이블> 을 실행하십시오.

COPY INTO <테이블> 명령은 Snowflake 오브젝트 만들기 에서 생성한 가상 웨어하우스를 사용하여 파일을 복사합니다.

COPY INTO emp_basic
  FROM @%emp_basic
  FILE_FORMAT = (type = csv field_optionally_enclosed_by='"')
  PATTERN = '.*employees0[1-5].csv.gz'
  ON_ERROR = 'skip_file';
Copy

여기서

  • FROM 절은 데이터 파일을 포함한 위치(테이블의 내부 스테이지)를 지정합니다.

  • FILE_FORMAT 절은 파일 형식을 CSV로 지정하고 큰따옴표 문자(")를 문자열을 닫기 위해 사용되는 문자로 지정합니다. Snowflake는 다양한 파일 타입과 옵션을 지원합니다. 이와 관련한 설명은 CREATE FILE FORMAT 에서 제공됩니다.

  • PATTERN 절은 명령이 이 정규식(.*employees0[1-5].csv.gz)과 일치하는 파일 이름에서 데이터를 로드하도록 지정합니다.

  • ON_ERROR 절은 COPY 명령 실행 시 파일에서 오류가 발생할 때 수행해야 하는 동작을 지정합니다. 기본적으로, 이 명령은 첫 번째 오류가 발생할 경우 데이터 로딩을 중지합니다. 이 예에서는 오류가 포함된 파일은 전부 건너뛰고 다음 파일 로딩으로 이동합니다. (이 자습서에서 제공하는 파일에는 오류가 포함되어 있지 않고 이 예는 설명을 위해 제시하는 것입니다.)

COPY 명령은 파일의 유효성을 확인한 후 로드하는 옵션도 제공합니다. 추가적인 오류 검사 및 유효성 확인 지침에 대한 자세한 내용은 COPY INTO <테이블> 항목 및 기타 데이터 로딩 자습서 를 참조하십시오.

COPY 명령은 복사된 파일 목록과 관련 정보를 보여주는 결과를 반환합니다.

+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file               | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| employees02.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees04.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees05.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees03.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees01.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

로드된 데이터 쿼리하기

emp_basic 테이블에 로드된 데이터는 SQL, 지원되는 모든 함수연산자 를 사용하여 쿼리할 수 있습니다.

또한, 표준 DML 명령어 를 사용하여 로드된 데이터의 업데이트 또는 추가 데이터 삽입과 같은 데이터 조작을 수행할 수도 있습니다.

모든 데이터 불러오기

테이블에서 전체 행 및 열 반환:

SELECT * FROM emp_basic;
Copy

다음은 부분적인 결과입니다.

+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
| FIRST_NAME | LAST_NAME    | EMAIL                     | STREETADDRESS               | CITY               | START_DATE |
|------------+--------------+---------------------------+-----------------------------+--------------------+------------|
| Arlene     | Davidovits   | adavidovitsk@sf_tuts.com  | 7571 New Castle Circle      | Meniko             | 2017-05-03 |
| Violette   | Shermore     | vshermorel@sf_tuts.com    | 899 Merchant Center         | Troitsk            | 2017-01-19 |
| Ron        | Mattys       | rmattysm@sf_tuts.com      | 423 Lien Pass               | Bayaguana          | 2017-11-15 |
 ...
 ...
 ...
| Carson     | Bedder       | cbedderh@sf_tuts.co.au    | 71 Clyde Gallagher Place    | Leninskoye         | 2017-03-29 |
| Dana       | Avory        | davoryi@sf_tuts.com       | 2 Holy Cross Pass           | Wenlin             | 2017-05-11 |
| Ronny      | Talmadge     | rtalmadgej@sf_tuts.co.uk  | 588 Chinook Street          | Yawata             | 2017-06-02 |
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
Copy

추가 데이터 행 삽입하기

INSERT DML 명령을 사용하면 스테이징된 파일의 데이터를 테이블로 로드할 뿐만 아니라 테이블에 행을 직접 삽입할 수 있습니다.

예를 들어, 추가 행 2개를 테이블에 삽입합니다.

INSERT INTO emp_basic VALUES
   ('Clementine','Adamou','cadamou@sf_tuts.com','10510 Sachs Road','Klenak','2017-9-22') ,
   ('Marlowe','De Anesy','madamouc@sf_tuts.co.uk','36768 Northfield Plaza','Fangshan','2017-1-26');
Copy

이메일 주소를 기준으로 행 쿼리하기

LIKE 함수를 사용하여 영국 최상위 도메인 이름을 갖는 이메일 주소의 목록을 반환합니다.

SELECT email FROM emp_basic WHERE email LIKE '%.uk';
Copy

다음은 예시 결과입니다.

+--------------------------+
| EMAIL                    |
|--------------------------|
| gbassfordo@sf_tuts.co.uk |
| rtalmadgej@sf_tuts.co.uk |
| madamouc@sf_tuts.co.uk   |
+--------------------------+

시작일을 기준으로 행 쿼리하기

예를 들어 특정 직원 혜택이 시작될 수 있는 날짜를 계산하려면 DATEADD 함수를 사용하여 직원 시작일에 90일을 더하십시오. 시작일이 2017년 1월 1일 이전인 직원을 기준으로 목록을 필터링합니다.

SELECT first_name, last_name, DATEADD('day',90,start_date) FROM emp_basic WHERE start_date <= '2017-01-01';
Copy

다음은 예시 결과입니다.

+------------+-----------+------------------------------+
| FIRST_NAME | LAST_NAME | DATEADD('DAY',90,START_DATE) |
|------------+-----------+------------------------------|
| Granger    | Bassford  | 2017-03-30                   |
| Catherin   | Devereu   | 2017-03-17                   |
| Cesar      | Hovie     | 2017-03-21                   |
| Wallis     | Sizey     | 2017-03-30                   |
+------------+-----------+------------------------------+

요약, 정리 및 추가 리소스

축하합니다! 이 소개 자습서를 성공적으로 완료하셨습니다.

잠시 시간을 내어 이 자습서에 살펴본 내용에 대한 간략한 요약과 주요 사항을 복습하십시오. 자습서에서 생성한 오브젝트를 삭제하여 정리를 할 수도 있습니다. Snowflake 설명서의 다른 항목을 검토하여 자세히 알아보십시오.

요약 및 주요 사항

요약하자면, 데이터 로딩은 다음의 2단계를 통해 수행됩니다.

  1. 로드할 데이터 파일을 스테이징합니다. 파일은 내부에(Snowflake) 또는 외부 위치에 스테이징할 수 있습니다. 이 자습서에서는 내부적으로 파일을 스테이징합니다.

  2. 스테이징된 파일에서 기존 대상 테이블로 데이터를 복사합니다. 이 단계에서는 실행 중인 웨어하우스가 필요합니다.

CSV 파일 로딩에 대한 다음 핵심 사항을 기억하십시오.

  • CSV 파일은 1개 이상의 레코드, 각 레코드에 1개 이상의 필드 및 일부 경우 헤더 레코드로 구성됩니다.

  • 각 파일의 레코드 및 필드는 구분 기호로 구분됩니다. 기본 구분 기호는 다음과 같습니다.

    레코드

    줄 바꿈 문자

    필드

    쉼표

    즉, Snowflake에서는 CSV 파일의 각 레코드가 줄 바꿈으로 구분되고 각 레코드의 필드(예: 개별 값)는 쉼표로 구분되어야 합니다. 다른 문자를 레코드 및 필드 구분 기호로 사용하려면, 로드할 때 해당 구분 기호를 파일 형식의 일부로 명확하게 지정해야 합니다.

  • 파일의 필드와 로드할 테이블의 열 사이에는 다음의 측면에서 직접적인 상관관계가 있습니다.

    • 필드(파일) 및 열(대상 테이블)의 수.

    • 각 파일/테이블 내에서 필드와 열의 위치.

    • 필드 및 열에 대한 데이터 타입(예: 문자열, 숫자 또는 날짜).

    개수, 위치, 데이터 타입이 데이터에 맞춰 정렬되지 않으면 레코드가 로드되지 않습니다.

    참고

    Snowflake는 필드가 대상 테이블의 열과 정확하게 정렬되지 않는 파일을 로드하지 않지만, 고급 데이터 로딩 항목(로드 중 데이터 변환하기 에서 설명)이 있습니다.

자습서 정리(선택 사항)

이 자습서에서 생성한 오브젝트가 더 이상 필요하지 않으면 DROP <오브젝트> 문으로 시스템에서 제거할 수 있습니다.

DROP DATABASE IF EXISTS sf_tuts;

DROP WAREHOUSE IF EXISTS sf_tuts_wh;
Copy

연결 종료하기

연결을 끊으려면 SnowSQL의 !exit (또는 별칭인 !disconnect) 명령을 사용합니다.

현재 연결을 종료하고 이 연결이 마지막 연결이면 SnowSQL을 종료합니다.

다음에는 무엇을 해야 합니까?

다음 리소스를 활용하여 Snowflake에 대해 계속 알아보십시오.