LoginSignup
0
2

More than 1 year has passed since last update.

【データ基盤構築/Snowflake】外部ストレージのファイルでテーブルを生成する

Last updated at Posted at 2023-03-20

今回の課題

AWSのS3に格納しているtsv形式のファイルを使って、
Snowflakeにてテーブルを作成する流れを理解したい。

実装する流れ

tsv形式のファイルでSnowflakeにテーブルを作成する流れを簡単にまとめる。

1)S3バケットを指し示すステージを作成する

外部ストレージのファイルからSnowflakeのテーブルにデータをロードしたり、
テーブルから外部ストレージにデータをアンロードするためのステージを作成しておく。

create stage [database].[schema].[S3bucket]
url = 's3://******' -- S3のURL名
;

2)S3にあるファイルを確認してみる

ワークシートにて下記を実行する。

list @[database].[schema].[S3bucket];

結果、ファイル名,ファイルのサイズ,MD5のハッシュ,最終更新日が出力される。
抽出したいファイル名などを確認することができる。

3)外部ステージのファイルをクエリする。

ワークシートにて、下記のようなクエリを実行することで、
外部ストレージのファイルに対してクエリを実行してデータを抽出することができる。
ファイルにどんなデータが格納されているか事前に確認することができる。

select
    $1   -- ファイルの1列目
    , $2 -- ファイルの2列目
from
    @[database].[schema].[bucket]/[ファイル名(:「〜.tsv)] -- クエリしたいファイルを指定
;

4)外部ストレージのファイルのデータを格納するテーブルを作っておく

下記のクエリを実行して、Snowflake内に外部ストレージのデータを格納するテーブルを生成しておく。

create or replace table sample_table(
    ID number, -- カラム名 データ型を指定している
    NAME varchar(15)
);

5)読み込む外部ストレージのファイルの形式を指定しておく

外部ストレージから読み込むファイルがどんな形式でデータを保持しているのか、下記のクエリを実行することで指定しておく。

今回はtsv形式のファイルなので、下記のように設定した。

create or replace file format sample_format
    type = csv
    field_delimiter = '\t' -- tab区切りの.tsvファイルを読み込むため
;

6)Snowflakeのテーブルに外部ストレージのデータを格納する

copy into sample_table
from @[database].[schema].[S3bucket]/[ファイル名(:「〜.tsv)]
file_format = sample_format -- 5)で指定したフォーマットを指定する

以上のような流れでクエリを実行して、
外部ストレージのファイルを使って、Snowflakeにテーブルを生成することができた。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2