列指向データベースへのデータ投入

NoSQL入門

Jake Roach

Data Engineer

行指向 vs. 列指向データベースへの投入

行指向:

  • トランザクション用途に最適化
  • 個別のレコードの挿入・更新・削除で高性能

列指向:

  • 分析ワークフロー向け
  • 一括のロード・更新・削除で高性能

分析用データベースが毎日更新される様子。

NoSQL入門

CREATE TABLE

Snowflake データウェアハウスと入れ子のストレージオブジェクトの図。

CREATE TABLE books (
    title VARCHAR(100),
    author VARCHAR(100),
    price FLOAT
);
NoSQL入門

COPY INTO

COPY INTO books
FROM 'file://data_science_books.csv'
FILE_FORMAT = (
    TYPE = 'CSV'
    FIELD_DELIMITER = ','
    SKIP_HEADER = 1
);

COPY INTO

FROM

  • クラウドストレージの場所
  • URL
  • ステージ済みファイル

FILE_FORMAT

  • ファイル種別、区切り文字、その他メタデータ
1 https://docs.snowflake.com/en/sql-reference/sql/copy-into-table
NoSQL入門

CREATE TABLE ... AS

CREATE TABLE premium_books AS
SELECT *
FROM books
WHERE price > 50.00;
CREATE OR REPLACE TABLE premium_books AS
SELECT *
FROM books
WHERE price > 50.00;

CREATE TABLE ... AS

  • テーブル名を指定
  • 現在のスキーマにテーブルを作成

SELECT ...

  • クエリ結果でテーブルを投入

OR REPLACE

  • 既存テーブルがあれば新しいテーブルで置換
1 https://docs.snowflake.com/en/sql-reference/sql/create-table
NoSQL入門

練習しましょう!

NoSQL入門

Preparing Video For Download...