20분만에 Snowflake 시작하기¶
소개¶
이 자습서에서는 Snowflake 명령줄 클라이언트인 SnowSQL 을 사용하여 다음과 같은 주요 개념과 작업을 소개합니다.
Snowflake 오브젝트 생성 — 데이터 저장을 위한 데이터베이스와 테이블을 생성합니다.
데이터 로딩—테이블에 로드할 수 있는 작은 샘플 CSV 데이터 파일을 제공합니다.
쿼리—샘플 쿼리를 살펴봅니다.
참고
Snowflake는 이 자습서의 샘플 데이터에 사용되는 디스크상의 저장소에 대해 최소 금액을 청구합니다. 이 자습서에서는 데이터베이스를 삭제하고 저장소 비용을 최소화하는 절차를 제공합니다.
Snowflake에서는 데이터를 로드하고 쿼리를 실행하기 위해 가상 웨어하우스 가 필요합니다. 실행 중인 가상 웨어하우스는 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를 설정하려면 다음을 완료한 후 계속하십시오.
사용자 만들기
데이터베이스, 테이블, 가상 웨어하우스를 만들려면 이러한 오브젝트를 만들 권한을 부여하는 역할이 있는 Snowflake 사용자로 로그인해야 합니다.
30일 평가판 계정을 사용 중인 경우 해당 계정에 대해 생성된 사용자로 로그인할 수 있습니다. 이 사용자는 오브젝트 생성에 필요한 권한이 있는 역할을 가집니다.
Snowflake 사용자가 없으면 이 자습서를 수행할 수 없습니다. 사용자를 생성할 수 있는 역할이 없는 경우 사용자를 생성할 수 있는 사람에게 이 단계를 수행해 달라고 요청하십시오. ACCOUNTADMIN 또는 SECURITYADMIN 역할이 있는 사용자가 사용자를 생성할 수 있습니다.
SnowSQL 설치하기
SnowSQL을 설치하려면 SnowSQL 설치하기 섹션을 참조하십시오.
샘플 데이터 파일 다운로드하기
이 자습서의 지침에 따라 Snowflake에서 제공하는 CSV 형식의 샘플 직원 데이터 파일을 다운로드합니다.
샘플 데이터 파일을 다운로드하고 압축을 푸는 방법:
샘플 데이터 파일 세트를 다운로드합니다. 아카이브 파일
getting-started.zip
의 이름을 오른쪽 마우스 버튼으로 클릭하고 링크/파일을 로컬 파일 시스템에 저장합니다.샘플 파일의 압축을 풉니다. 자습서에서는 다음 디렉터리 중 하나에 파일의 압축을 푼 것으로 가정합니다.
Linux/macOS:
/tmp
Windows:
C:\\temp
각 파일에는 데이터 레코드가 5개 있습니다. 이 데이터에서는 쉼표(,) 문자를 필드 구분 기호로 사용합니다. 다음은 예시 레코드입니다.
Althea,Featherstone,afeatherstona@sf_tuts.com,"8172 Browning Street, Apt B",Calatrava,7/12/2017
각 레코드에서 필드를 구분하는 쉼표의 앞 또는 뒤에는 공백이 없습니다. 이는 Snowflake가 CSV 데이터를 로드할 때의 기본 설정입니다.
SnowSQL 에 로그인하기¶
SnowSQL 을 받은 후 SnowSQL을 시작하여 Snowflake에 연결합니다.
명령줄 창을 엽니다.
다음과 같이 SnowSQL을 시작합니다.
$ snowsql -a <account_identifier> -u <user_name>
여기서
<account_identifier>
는 Snowflake 계정에 대한 고유 식별자입니다.계정 식별자 의 선호 형식은 다음과 같습니다.
organization_name-account_name
Snowflake 조직 및 계정의 이름입니다. 자세한 내용은 형식 1(기본 설정): 조직의 계정 이름 섹션을 참조하십시오.
<사용자_이름>
은 Snowflake 사용자에 대한 로그인 이름입니다.
참고
계정에 정의된 ID 공급자(IdP)가 있는 경우 다음 예에서 볼 수 있는 것처럼 웹 브라우저를 사용하여 비밀번호 대신 인증할 수 있습니다.
$ snowsql -a <account_identifier> -u <user_name> --authenticator externalbrowser
자세한 내용은 웹 브라우저에서 페더레이션 인증/SSO 사용하기 섹션을 참조하십시오.
SnowSQL에서 메시지를 표시하면, Snowflake 사용자의 비밀번호를 입력합니다.
로그인에 성공하면 SnowSQL은 현재 웨어하우스, 데이터베이스, 스키마를 포함하는 명령 프롬프트를 표시합니다.
참고
계정이 잠겨 계정 식별자를 얻을 수 없는 경우 평가판 계정에 가입할 때 Snowflake에서 보내준 환영 이메일에서 계정 식별자를 찾거나 ORGADMIN 의 도움을 받아 계정 세부 정보 를 얻을 수 있습니다. 환영 이메일에서 locator
, cloud
, region
의 값을 확인할 수도 있습니다.
Snowflake 사용자에게 기본 웨어하우스, 데이터베이스, 스키마가 없거나 기본 웨어하우스, 데이터베이스, 스키마를 지정하도록 SnowSQL을 구성하지 않은 경우 프롬프트에 no warehouse
, no database
, no schema
가 표시됩니다. 예:
user-name#(no warehouse)@(no database).(no schema)>
이 프롬프트는 현재 세션에 대해 선택된 웨어하우스, 데이터베이스, 스키마가 없음을 나타냅니다. 다음 단계에서 이러한 오브젝트를 생성합니다. 이 자습서의 다음 단계에 따라 이러한 오브젝트를 생성하면 프롬프트가 자동으로 업데이트되면서 이들 오브젝트의 이름을 포함합니다.
자세한 내용은 SnowSQL을 통해 연결하기 섹션을 참조하십시오.
Snowflake 오브젝트 만들기¶
이 단계 중에 다음 Snowflake 오브젝트를 생성합니다.
데이터베이스(
sf_tuts
)와 테이블(emp_basic
)입니다. 샘플 데이터를 이 테이블에 로드합니다.가상 웨어하우스 (
sf_tuts_wh
)입니다. 이 웨어하우스는 테이블에 데이터를 로드하고 테이블을 쿼리하는 데 필요한 컴퓨팅 리소스를 제공합니다. 이 자습서에서는 X-Small 웨어하우스를 생성합니다.
이 자습서 완료 시 이러한 오브젝트를 제거합니다.
데이터베이스 만들기¶
CREATE DATABASE 명령을 사용하여 sf_tuts
데이터베이스를 만듭니다.
CREATE OR REPLACE DATABASE sf_tuts;
이 자습서에서는 새 스키마를 생성하는 대신 각 데이터베이스에 사용할 수 있는 기본 스키마(public
)를 사용합니다.
방금 생성한 데이터베이스와 스키마는 현재 SnowSQL 명령 프롬프트에 반영된 대로 현재 세션에서 사용 중입니다. 컨텍스트 함수를 사용하여 이 정보를 얻을 수도 있습니다.
SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();
다음은 예시 결과입니다.
+--------------------+------------------+
| 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
);
테이블의 열 수, 위치 및 데이터 타입은 이 자습서의 다음 단계에서 스테이징하는 샘플 데이터 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;
sf_tuts_wh
웨어하우스는 처음에는 일시 중단되지만 이 DML 문은 AUTO_RESUME = true
도 설정합니다. AUTO_RESUME 설정은 컴퓨팅 리소스가 필요한 SQL 문이 실행될 때 웨어하우스가 자동으로 시작되게 합니다.
생성한 웨어하우스는 이제 현재 세션에 사용됩니다. 이 정보는 SnowSQL 명령 프롬프트에 표시됩니다. 다음 컨텍스트 함수를 사용하여 웨어하우스의 이름을 불러올 수도 있습니다.
SELECT CURRENT_WAREHOUSE();
다음은 예시 결과입니다.
+---------------------+
| 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;
예:
Linux 또는 macOS
PUT file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;
Windows
PUT file://C:\temp\employees0*.csv @sf_tuts.public.%emp_basic;
명령을 좀 더 자세히 살펴보겠습니다.
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;
다음은 예시 결과입니다.
+--------------------+------+----------------------------------+------------------------------+
| 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';
여기서
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;
다음은 부분적인 결과입니다.
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
| 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 |
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
추가 데이터 행 삽입하기¶
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');
이메일 주소를 기준으로 행 쿼리하기¶
[ NOT ] LIKE 함수를 사용하여 영국 최상위 도메인 이름을 갖는 이메일 주소의 목록을 반환합니다.
SELECT email FROM emp_basic WHERE email LIKE '%.uk';
다음은 예시 결과입니다.
+--------------------------+
| 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';
다음은 예시 결과입니다.
+------------+-----------+------------------------------+
| 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단계를 통해 수행됩니다.
로드할 데이터 파일을 스테이징합니다. 파일은 내부에(Snowflake) 또는 외부 위치에 스테이징할 수 있습니다. 이 자습서에서는 내부적으로 파일을 스테이징합니다.
스테이징된 파일에서 기존 대상 테이블로 데이터를 복사합니다. 이 단계에서는 실행 중인 웨어하우스가 필요합니다.
CSV 파일 로딩에 대한 다음 핵심 사항을 기억하십시오.
CSV 파일은 1개 이상의 레코드, 각 레코드에 1개 이상의 필드 및 일부 경우 헤더 레코드로 구성됩니다.
각 파일의 레코드 및 필드는 구분 기호로 구분됩니다. 기본 구분 기호는 다음과 같습니다.
- 레코드:
줄 바꿈 문자
- 필드:
쉼표
즉, Snowflake에서는 CSV 파일의 각 레코드가 줄 바꿈으로 구분되고 각 레코드의 필드(예: 개별 값)는 쉼표로 구분되어야 합니다. 다른 문자를 레코드 및 필드 구분 기호로 사용하려면, 로드할 때 해당 구분 기호를 파일 형식의 일부로 명확하게 지정해야 합니다.
파일의 필드와 로드할 테이블의 열 사이에는 다음의 측면에서 직접적인 상관관계가 있습니다.
필드(파일) 및 열(대상 테이블)의 수.
각 파일/테이블 내에서 필드와 열의 위치.
필드 및 열에 대한 데이터 타입(예: 문자열, 숫자 또는 날짜).
개수, 위치, 데이터 타입이 데이터에 맞춰 정렬되지 않으면 레코드가 로드되지 않습니다.
참고
Snowflake는 필드가 대상 테이블의 열과 정확하게 정렬되지 않는 파일을 로드하지 않지만, 고급 데이터 로딩 항목(로드 중 데이터 변환하기 에서 설명)이 있습니다.
자습서 정리(선택 사항)¶
이 자습서에서 생성한 오브젝트가 더 이상 필요하지 않으면 DROP <오브젝트> 문으로 시스템에서 제거할 수 있습니다.
DROP DATABASE IF EXISTS sf_tuts;
DROP WAREHOUSE IF EXISTS sf_tuts_wh;
연결 종료하기¶
연결을 끊으려면 SnowSQL의 !exit
(또는 별칭인 !disconnect
) 명령을 사용합니다.
현재 연결을 종료하고 이 연결이 마지막 연결이면 SnowSQL을 종료합니다.
다음에는 무엇을 해야 합니까?¶
다음 리소스를 활용하여 Snowflake에 대해 계속 알아보십시오.
Snowflake에서 제공하는 다른 자습서를 완료하십시오.
주요 Snowflake 개념 및 기능과 함께 쿼리와 데이터 삽입/업데이트를 수행하기 위한 SQL 명령을 익히십시오.