SQL을 사용하여 샘플 데이터 로드 및 쿼리하기

소개

이 자습서에서는 Tasty Bytes라는 가상의 푸드 트럭 브랜드를 사용하여 SQL을 사용하여 Snowflake에서 데이터를 로드하고 쿼리하는 방법을 보여줍니다. Snowsight 의 미리 로드된 워크시트를 사용하여 이러한 작업을 완료합니다.

다음 그림에서는 Tasty Bytes의 개요를 보여줍니다.

여러 국가와 도시에 현지화된 푸드 트럭 옵션을 제공하는 15개 브랜드를 갖춘 글로벌 푸드 트럭 네트워크인 Tasty Bytes에 대한 개요가 포함되어 있습니다. 회사의 사명, 비전, 위치, 현재 상태, 미래 목표를 설명하는 이미지입니다.

참고

Snowflake는 이 자습서의 샘플 데이터에 사용되는 디스크상의 저장소에 대해 최소 금액을 청구합니다. 이 자습서에서는 데이터베이스를 삭제하고 저장소 비용을 최소화하는 절차를 제공합니다.

Snowflake에서는 데이터를 로드하고 쿼리를 실행하기 위해 가상 웨어하우스 가 필요합니다. 실행 중인 가상 웨어하우스는 Snowflake 크레딧을 사용합니다. 이 자습서에서는 무료 크레딧을 제공하는 30일 평가판 계정 을 사용하므로 비용이 발생하지 않습니다.

알아볼 내용

이 자습서에서는 다음에 대해 설명합니다.

  • 역할을 사용하여 부여된 권한으로 기능에 액세스합니다.

  • 웨어하우스를 사용하여 리소스에 액세스합니다.

  • 데이터베이스와 스키마를 만듭니다.

  • 테이블을 만듭니다.

  • 테이블에 데이터를 로드합니다.

  • 테이블에서 데이터를 쿼리합니다.

전제 조건

이 자습서에서는 다음과 같이 가정합니다.

참고

이 자습서는 평가판 계정이 있는 사용자에게만 제공됩니다. 다른 유형의 계정에는 샘플 워크시트를 사용할 수 없습니다.

1단계. Snowsight 를 사용하여 로그인

공용 인터넷을 통해 Snowsight 에 액세스하려면 다음을 수행하십시오.

  1. 지원되는 웹 브라우저에서 https://app.snowflake.com으로 이동합니다.

  2. 계정 식별자 또는 계정 URL을 입력합니다. 이전에 Snowsight 에 로그인한 경우 선택할 수 있는 계정 이름이 표시될 수 있습니다.

  3. Snowflake 계정 자격 증명을 사용하여 로그인합니다.

2단계. 데이터 로드 및 쿼리를 위해 SQL 워크시트 열기

워크시트를 사용하여 Snowflake 데이터베이스에서 SQL 명령을 작성하고 실행할 수 있습니다. 평가판 계정으로 이 자습서의 미리 로드된 워크시트에 액세스할 수 있습니다. 워크시트에는 데이터베이스를 생성하고 데이터를 데이터베이스에 로드하고 데이터를 쿼리하기 위해 실행할 SQL 명령이 있습니다. 워크시트에 대한 자세한 내용은 워크시트 시작하기 섹션을 참조하십시오.

미리 로드된 자습서 워크시트를 열려면 다음을 수행하십시오.

  1. Projects » Worksheets 를 선택하여 워크시트 목록을 엽니다.

  2. [Tutorial] Using SQL to load and query sample data 를 엽니다.

    워크시트는 다음 이미지와 유사합니다.

설명 주석과 함께 이 자습서의 SQL 명령이 포함된 SQL 로드 및 쿼리 워크시트.

3단계. 사용할 역할 및 웨어하우스 설정

사용하는 역할에 따라 보유하는 권한이 결정됩니다. 이 자습서에서는 계정의 오브젝트를 보고 관리할 수 있도록 ACCOUNTADMIN 시스템 역할을 사용합니다. 자세한 내용은 ACCOUNTADMIN 역할 사용하기 섹션을 참조하십시오.

웨어하우스는 오브젝트를 생성 및 관리하고 SQL 명령을 실행하는 데 필요한 리소스를 제공합니다. 이러한 리소스에는 CPU, 메모리, 임시 저장소가 포함됩니다. 평가판 계정에는 이 자습서에 사용할 수 있는 가상 웨어하우스(compute_wh)가 있습니다. 자세한 내용은 가상 웨어하우스 섹션을 참조하십시오.

사용할 역할과 웨어하우스를 설정하려면 다음을 수행하십시오.

  1. 열린 워크시트에서 커서를 USE ROLE 줄에 놓습니다.

    USE ROLE accountadmin;
    
    Copy
  2. 워크시트의 오른쪽 위 모서리에서 Run 를 선택합니다.

    참고

    이 자습서에서는 한 번에 하나씩 SQL 문을 실행합니다. Run All 을 선택하지 마십시오.

  3. USE WAREHOUSE 줄에 커서를 놓고 Run 을 선택합니다.

    USE WAREHOUSE compute_wh;
    
    Copy

4단계. 데이터베이스, 스키마, 테이블 만들기

데이터베이스는 사용자가 관리하고 쿼리할 수 있는 테이블에 데이터를 저장합니다. 스키마는 데이터베이스 오브젝트(예: 테이블, 뷰 등)를 논리적으로 그룹화한 것입니다. 예를 들어 스키마에는 특정 애플리케이션에 필요한 데이터베이스 오브젝트가 포함될 수 있습니다. 자세한 내용은 데이터베이스, 테이블, 뷰 - 개요 섹션을 참조하십시오.

이 자습서에서는 tasty_bytes_sample_data 라는 데이터베이스, raw_pos 라는 스키마, menu 라는 테이블을 만듭니다.

데이터베이스, 스키마, 테이블을 생성하려면 다음을 수행하십시오.

  1. 열린 워크시트에서 커서를 CREATE ORREPLACEDATABASE 줄에 놓은 다음, Run 을 선택합니다.

    CREATE OR REPLACE DATABASE tasty_bytes_sample_data;
    
    Copy
  2. CREATE OR REPLACE SCHEMA 줄에 커서를 놓고 Run 을 선택합니다.

    CREATE OR REPLACE SCHEMA tasty_bytes_sample_data.raw_pos;
    
    Copy
  3. 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
    );
    
    Copy
  4. 테이블이 성공적으로 생성되었는지 확인하려면 커서를 SELECT 줄에 놓은 다음 Run 을 선택하십시오.

    SELECT * FROM tasty_bytes_sample_data.raw_pos.menu;
    
    Copy

    출력에는 생성한 테이블의 열이 표시됩니다. 자습서의 이 시점에서는 테이블에 아무런 행도 없습니다.

5단계. 스테이지 생성 및 데이터 로드

스테이지는 Snowflake 데이터베이스에 로드할 데이터 파일을 보관하는 위치입니다. 이 자습서에서는 Amazon S3 버킷에서 데이터를 로드하는 스테이지를 생성합니다. 이 자습서에서는 데이터가 포함된 CSV 파일이 있는 기존 버킷을 사용합니다. 이 CSV 파일의 데이터를 이전에 만든 테이블에 로드합니다. 자세한 내용은 Amazon S3에서 대량 로드 섹션을 참조하십시오.

스테이지를 만들려면 다음을 수행하십시오.

  1. 열린 워크시트에서 커서를 CREATE OR REPLACE STAGE 줄에 놓은 다음, Run 을 선택합니다.

    CREATE OR REPLACE STAGE tasty_bytes_sample_data.public.blob_stage
    url = 's3://sfquickstarts/tastybytes/'
    file_format = (type = csv);
    
    Copy
  2. 스테이지가 성공적으로 생성되었는지 확인하려면 커서를 LIST 줄에 놓은 다음 Run 을 선택하십시오.

    LIST @tasty_bytes_sample_data.public.blob_stage/raw_pos/menu/;
    
    Copy

    출력은 다음 이미지와 유사합니다.

    name, size, md5 및 last_modified 열이 포함된 테이블 출력. 한 행에는 스테이지의 세부 정보가 표시됩니다.
  3. 데이터를 테이블에 로드하려면 커서를 COPY INTO 줄에 놓은 다음 Run 을 선택하십시오.

    COPY INTO tasty_bytes_sample_data.raw_pos.menu
    FROM @tasty_bytes_sample_data.public.blob_stage/raw_pos/menu/;
    
    Copy

6단계. 데이터 쿼리

이제 데이터가 로드되었으므로 menu 테이블에서 쿼리를 실행할 수 있습니다.

열려 있는 워크시트에서 쿼리를 실행하려면 SELECT 명령의 줄을 선택한 다음 Run 을 선택하십시오.

예를 들어 테이블의 행 수를 반환하려면 다음 쿼리를 실행하십시오.

SELECT COUNT(*) AS row_count FROM tasty_bytes_sample_data.raw_pos.menu;
Copy

출력은 다음 이미지와 유사합니다.

ROW_COUNT 열이 포함된 테이블 출력. 100의 값이 포함된 행 1개.

다음 쿼리를 실행하여 테이블의 상위 10개 행을 반환합니다.

SELECT TOP 10 * FROM tasty_bytes_sample_data.raw_pos.menu;
Copy

출력은 다음 이미지와 유사합니다.

MENU_ID, MENU_TYPE_ID, MENU_TYPE, TRUCK_BRAND_NAME, MENU_ITEM_ID 및 MENU_ITEM_NAME 열이 포함된 테이블 출력. 첫 번째 행에는 10001, 1, Ice Cream, Freezing Point, 10, Lemonade라는 값이 있습니다.

지정된 수의 행을 반환하는 쿼리 실행에 대한 자세한 내용은 TOP <n> 섹션을 참조하십시오.

워크시트에서 다른 쿼리를 실행하여 menu 테이블의 데이터를 탐색할 수 있습니다.

7단계. 정리, 요약 및 추가 리소스

축하합니다! 평가판 계정에 대해 이 자습서를 성공적으로 완료했습니다.

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

자습서 오브젝트 정리(선택 사항)

이 자습서에서 생성한 오브젝트가 더 이상 필요하지 않으면 DROP <오브젝트> 명령으로 시스템에서 제거할 수 있습니다. 생성한 데이터베이스를 제거하려면 다음 명령을 실행하십시오.

DROP DATABASE IF EXISTS tasty_bytes_sample_data;
Copy

요약 및 주요 사항

요약하자면, Snowsight 에 미리 로드된 워크시트를 사용하여 다음 단계를 완료했습니다.

  1. 역할 및 웨어하우스 컨텍스트를 설정합니다.

  2. 데이터베이스, 스키마, 테이블을 만듭니다.

  3. 스테이지를 만들고 스테이지의 데이터를 데이터베이스에 로드합니다.

  4. 데이터를 쿼리합니다.

다음은 데이터 로드 및 쿼리에 대해 기억해야 할 몇 가지 주요 사항입니다.

  • 계정에서 오브젝트를 생성하고 관리하는 데 필요한 권한이 있어야 합니다. 이 자습서에서는 이러한 권한에 대해 ACCOUNTADMIN 시스템 역할을 사용합니다.

    이 역할은 일반적으로 오브젝트를 생성하는 데는 사용되지 않습니다. 대신, 조직 내 비즈니스 기능에 맞는 역할 계층 구조를 만드는 것이 좋습니다. 자세한 내용은 ACCOUNTADMIN 역할 사용하기 섹션을 참조하십시오.

  • 오브젝트를 생성 및 관리하고 SQL 명령을 실행하는 데 필요한 리소스를 위한 웨어하우스가 필요합니다. 이 자습서에서는 평가판 계정에 포함된 compute_wh 웨어하우스를 사용합니다.

  • 데이터를 저장하기 위한 데이터베이스와 데이터베이스 오브젝트를 논리적으로 그룹화하기 위한 스키마를 생성했습니다.

  • CSV 파일에서 데이터를 로드하는 스테이지를 만들었습니다.

  • 데이터가 데이터베이스에 로드된 후 SELECT 문을 사용하여 데이터를 쿼리했습니다.

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

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