SQL을 사용하여 샘플 데이터 로드 및 쿼리하기¶
소개¶
이 자습서에서는 Tasty Bytes라는 가상의 푸드 트럭 브랜드를 사용하여 SQL을 사용하여 Snowflake에서 데이터를 로드하고 쿼리하는 방법을 보여줍니다. Snowsight 의 미리 로드된 워크시트를 사용하여 이러한 작업을 완료합니다.
다음 그림에서는 Tasty Bytes의 개요를 보여줍니다.
참고
Snowflake는 이 자습서의 샘플 데이터에 사용되는 디스크상의 저장소에 대해 최소 금액을 청구합니다. 이 자습서에서는 데이터베이스를 삭제하고 저장소 비용을 최소화하는 절차를 제공합니다.
Snowflake에서는 데이터를 로드하고 쿼리를 실행하기 위해 가상 웨어하우스 가 필요합니다. 실행 중인 가상 웨어하우스는 Snowflake 크레딧을 사용합니다. 이 자습서에서는 무료 크레딧을 제공하는 30일 평가판 계정 을 사용하므로 비용이 발생하지 않습니다.
알아볼 내용¶
이 자습서에서는 다음에 대해 설명합니다.
역할을 사용하여 부여된 권한으로 기능에 액세스합니다.
웨어하우스를 사용하여 리소스에 액세스합니다.
데이터베이스와 스키마를 만듭니다.
테이블을 만듭니다.
테이블에 데이터를 로드합니다.
테이블에서 데이터를 쿼리합니다.
전제 조건¶
이 자습서에서는 다음과 같이 가정합니다.
지원되는 브라우저 가 있습니다.
평가판 계정이 있습니다. 아직 평가판 계정이 없다면 무료 평가판 을 신청할 수 있습니다. 원하는 Snowflake 클라우드 리전 을 선택할 수 있습니다.
사용자는 계정 관리자이며 ACCOUNTADMIN 시스템 역할이 부여됩니다. 자세한 내용은 ACCOUNTADMIN 역할 사용하기 섹션을 참조하십시오.
참고
이 자습서는 평가판 계정이 있는 사용자에게만 제공됩니다. 다른 유형의 계정에는 샘플 워크시트를 사용할 수 없습니다.
1단계. Snowsight 를 사용하여 로그인¶
공용 인터넷을 통해 Snowsight 에 액세스하려면 다음을 수행하십시오.
지원되는 웹 브라우저에서 https://app.snowflake.com으로 이동합니다.
계정 식별자 또는 계정 URL을 입력합니다. 이전에 Snowsight 에 로그인한 경우 선택할 수 있는 계정 이름이 표시될 수 있습니다.
Snowflake 계정 자격 증명을 사용하여 로그인합니다.
2단계. 데이터 로드 및 쿼리를 위해 SQL 워크시트 열기¶
워크시트를 사용하여 Snowflake 데이터베이스에서 SQL 명령을 작성하고 실행할 수 있습니다. 평가판 계정으로 이 자습서의 미리 로드된 워크시트에 액세스할 수 있습니다. 워크시트에는 데이터베이스를 생성하고 데이터를 데이터베이스에 로드하고 데이터를 쿼리하기 위해 실행할 SQL 명령이 있습니다. 워크시트에 대한 자세한 내용은 워크시트 시작하기 섹션을 참조하십시오.
미리 로드된 자습서 워크시트를 열려면 다음을 수행하십시오.
Projects » Worksheets 를 선택하여 워크시트 목록을 엽니다.
[Tutorial] Using SQL to load and query sample data 를 엽니다.
워크시트는 다음 이미지와 유사합니다.
3단계. 사용할 역할 및 웨어하우스 설정¶
사용하는 역할에 따라 보유하는 권한이 결정됩니다. 이 자습서에서는 계정의 오브젝트를 보고 관리할 수 있도록 ACCOUNTADMIN 시스템 역할을 사용합니다. 자세한 내용은 ACCOUNTADMIN 역할 사용하기 섹션을 참조하십시오.
웨어하우스는 오브젝트를 생성 및 관리하고 SQL 명령을 실행하는 데 필요한 리소스를 제공합니다. 이러한 리소스에는 CPU, 메모리, 임시 저장소가 포함됩니다. 평가판 계정에는 이 자습서에 사용할 수 있는 가상 웨어하우스(compute_wh
)가 있습니다. 자세한 내용은 가상 웨어하우스 섹션을 참조하십시오.
사용할 역할과 웨어하우스를 설정하려면 다음을 수행하십시오.
열린 워크시트에서 커서를 USE ROLE 줄에 놓습니다.
USE ROLE accountadmin;
워크시트의 오른쪽 위 모서리에서 Run 를 선택합니다.
참고
이 자습서에서는 한 번에 하나씩 SQL 문을 실행합니다. Run All 을 선택하지 마십시오.
USE WAREHOUSE 줄에 커서를 놓고 Run 을 선택합니다.
USE WAREHOUSE compute_wh;
4단계. 데이터베이스, 스키마, 테이블 만들기¶
데이터베이스는 사용자가 관리하고 쿼리할 수 있는 테이블에 데이터를 저장합니다. 스키마는 데이터베이스 오브젝트(예: 테이블, 뷰 등)를 논리적으로 그룹화한 것입니다. 예를 들어 스키마에는 특정 애플리케이션에 필요한 데이터베이스 오브젝트가 포함될 수 있습니다. 자세한 내용은 데이터베이스, 테이블, 뷰 - 개요 섹션을 참조하십시오.
이 자습서에서는 tasty_bytes_sample_data
라는 데이터베이스, raw_pos
라는 스키마, menu
라는 테이블을 만듭니다.
데이터베이스, 스키마, 테이블을 생성하려면 다음을 수행하십시오.
열린 워크시트에서 커서를 CREATE ORREPLACEDATABASE 줄에 놓은 다음, Run 을 선택합니다.
CREATE OR REPLACE DATABASE tasty_bytes_sample_data;
CREATE OR REPLACE SCHEMA 줄에 커서를 놓고 Run 을 선택합니다.
CREATE OR REPLACE SCHEMA tasty_bytes_sample_data.raw_pos;
CREATE OR REPLACE TABLE 줄에 커서를 놓고 Run 을 선택합니다.
CREATE OR REPLACE TABLE tasty_bytes_sample_data.raw_pos.menu ( menu_id NUMBER(19,0), menu_type_id NUMBER(38,0), menu_type VARCHAR(16777216), truck_brand_name VARCHAR(16777216), menu_item_id NUMBER(38,0), menu_item_name VARCHAR(16777216), item_category VARCHAR(16777216), item_subcategory VARCHAR(16777216), cost_of_goods_usd NUMBER(38,4), sale_price_usd NUMBER(38,4), menu_item_health_metrics_obj VARIANT );
테이블이 성공적으로 생성되었는지 확인하려면 커서를 SELECT 줄에 놓은 다음 Run 을 선택하십시오.
SELECT * FROM tasty_bytes_sample_data.raw_pos.menu;
출력에는 생성한 테이블의 열이 표시됩니다. 자습서의 이 시점에서는 테이블에 아무런 행도 없습니다.
5단계. 스테이지 생성 및 데이터 로드¶
스테이지는 Snowflake 데이터베이스에 로드할 데이터 파일을 보관하는 위치입니다. 이 자습서에서는 Amazon S3 버킷에서 데이터를 로드하는 스테이지를 생성합니다. 이 자습서에서는 데이터가 포함된 CSV 파일이 있는 기존 버킷을 사용합니다. 이 CSV 파일의 데이터를 이전에 만든 테이블에 로드합니다. 자세한 내용은 Amazon S3에서 대량 로드 섹션을 참조하십시오.
스테이지를 만들려면 다음을 수행하십시오.
열린 워크시트에서 커서를 CREATE OR REPLACE STAGE 줄에 놓은 다음, Run 을 선택합니다.
CREATE OR REPLACE STAGE tasty_bytes_sample_data.public.blob_stage url = 's3://sfquickstarts/tastybytes/' file_format = (type = csv);
스테이지가 성공적으로 생성되었는지 확인하려면 커서를 LIST 줄에 놓은 다음 Run 을 선택하십시오.
LIST @tasty_bytes_sample_data.public.blob_stage/raw_pos/menu/;
출력은 다음 이미지와 유사합니다.
데이터를 테이블에 로드하려면 커서를 COPY INTO 줄에 놓은 다음 Run 을 선택하십시오.
COPY INTO tasty_bytes_sample_data.raw_pos.menu FROM @tasty_bytes_sample_data.public.blob_stage/raw_pos/menu/;
6단계. 데이터 쿼리¶
이제 데이터가 로드되었으므로 menu
테이블에서 쿼리를 실행할 수 있습니다.
열려 있는 워크시트에서 쿼리를 실행하려면 SELECT 명령의 줄을 선택한 다음 Run 을 선택하십시오.
예를 들어 테이블의 행 수를 반환하려면 다음 쿼리를 실행하십시오.
SELECT COUNT(*) AS row_count FROM tasty_bytes_sample_data.raw_pos.menu;
출력은 다음 이미지와 유사합니다.
다음 쿼리를 실행하여 테이블의 상위 10개 행을 반환합니다.
SELECT TOP 10 * FROM tasty_bytes_sample_data.raw_pos.menu;
출력은 다음 이미지와 유사합니다.
지정된 수의 행을 반환하는 쿼리 실행에 대한 자세한 내용은 TOP <n> 섹션을 참조하십시오.
워크시트에서 다른 쿼리를 실행하여 menu
테이블의 데이터를 탐색할 수 있습니다.
7단계. 정리, 요약 및 추가 리소스¶
축하합니다! 평가판 계정에 대해 이 자습서를 성공적으로 완료했습니다.
잠시 시간을 내어 이 자습서에 살펴본 내용에 대한 간략한 요약과 주요 사항을 복습하십시오. 이 자습서에서 생성한 오브젝트를 모두 삭제하여 정리해 보십시오. Snowflake 설명서의 다른 항목을 검토하여 자세히 알아보십시오.
자습서 오브젝트 정리(선택 사항)¶
이 자습서에서 생성한 오브젝트가 더 이상 필요하지 않으면 DROP <오브젝트> 명령으로 시스템에서 제거할 수 있습니다. 생성한 데이터베이스를 제거하려면 다음 명령을 실행하십시오.
DROP DATABASE IF EXISTS tasty_bytes_sample_data;
요약 및 주요 사항¶
요약하자면, Snowsight 에 미리 로드된 워크시트를 사용하여 다음 단계를 완료했습니다.
역할 및 웨어하우스 컨텍스트를 설정합니다.
데이터베이스, 스키마, 테이블을 만듭니다.
스테이지를 만들고 스테이지의 데이터를 데이터베이스에 로드합니다.
데이터를 쿼리합니다.
다음은 데이터 로드 및 쿼리에 대해 기억해야 할 몇 가지 주요 사항입니다.
계정에서 오브젝트를 생성하고 관리하는 데 필요한 권한이 있어야 합니다. 이 자습서에서는 이러한 권한에 대해 ACCOUNTADMIN 시스템 역할을 사용합니다.
이 역할은 일반적으로 오브젝트를 생성하는 데는 사용되지 않습니다. 대신, 조직 내 비즈니스 기능에 맞는 역할 계층 구조를 만드는 것이 좋습니다. 자세한 내용은 ACCOUNTADMIN 역할 사용하기 섹션을 참조하십시오.
오브젝트를 생성 및 관리하고 SQL 명령을 실행하는 데 필요한 리소스를 위한 웨어하우스가 필요합니다. 이 자습서에서는 평가판 계정에 포함된
compute_wh
웨어하우스를 사용합니다.데이터를 저장하기 위한 데이터베이스와 데이터베이스 오브젝트를 논리적으로 그룹화하기 위한 스키마를 생성했습니다.
CSV 파일에서 데이터를 로드하는 스테이지를 만들었습니다.
데이터가 데이터베이스에 로드된 후 SELECT 문을 사용하여 데이터를 쿼리했습니다.
다음에는 무엇을 해야 합니까?¶
다음 리소스를 활용하여 Snowflake에 대해 계속 알아보십시오.
Snowflake에서 제공하는 다른 자습서를 완료하십시오.
주요 Snowflake 개념 및 기능과 함께 쿼리와 데이터 삽입/업데이트를 수행하기 위해 사용하는 SQL 명령에 익숙해 지십시오.
Snowflake에서 제공하는 Tasty Bytes Quickstarts를 사용해 보십시오.