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 ステートメントを1つずつ実行します。 Run All を選択しないでください。

  3. カーソルを USE WAREHOUSE 行に置き、 Run を選択します。

    USE WAREHOUSE compute_wh;
    
    Copy

ステップ4。データベース、スキーマ、テーブルの作成

データベースは、管理およびクエリできるテーブルにデータを格納します。スキーマとは、テーブルやビューなどのデータベースオブジェクトを論理的にグループ化したものです。例えば、スキーマには特定のアプリケーションに必要なデータベースオブジェクトが含まれているかもしれません。詳細については、 データベース、テーブル、およびビュー - 概要 をご参照ください。

このチュートリアルでは、 tasty_bytes_sample_data という名前のデータベース、 raw_pos という名前のスキーマ、 menu という名前のテーブルを作成します。

データベース、スキーマ、テーブルを作成するには、次を実行します。

  1. 開いているワークシートで、 CREATE OR REPLACE DATABASE 行にカーソルを置き、 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

    出力は、次の画像に類似したものになります。

    名前、サイズ、md5、last_modified列があるテーブル出力。1行にはステージの詳細が表示されます。
  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。以下の値を持つ1行: 100。

テーブルの上位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、アイスクリーム、凝固点、10、レモネード。

指定された行数を返すクエリの実行の詳細については、 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について引き続き学習しましょう。