13
Amazon Redshift こここここ

Amazon Redshift ことはじめ

Embed Size (px)

DESCRIPTION

Amazon Redshiftって何?ビッグデータ解析に使えるらしいんだけど?っていう人が、とりあえず理解出来るように書きました!

Citation preview

Page 1: Amazon Redshift ことはじめ

Amazon Redshiftことはじめ

Page 2: Amazon Redshift ことはじめ

前提条件• 『 Redshiftを簡単に理解』する事を目的にしています。そのため、説明をバッサリと省略してます。

• DynamoDBを使うパターンもありますが、ここでは割愛しています

• PostgreSQLにアクセスできればクライアントは何でも良いですが、ここでは psqlとします

Page 3: Amazon Redshift ことはじめ

Redshiftとは?• AWSの DBサービス• 端的に言えば AmazonRDSと同様• 大規模データの分析に向いてる DB• PostgreSQLベース( Ver8.0.2)– SQL ・各種コマンドも Postgresqlと一緒–学習コストは『 Postgresqlのみ』– 8.4クライアントでも実行可能– Cent-OS 6なら「 yum install postgresql」

Page 4: Amazon Redshift ことはじめ

費用起動時間ごとの課金制。『起動しっぱなし』か、『スポットで起動させる』かは要件次第。 XLと 8XLの違いは処理速度。

Page 5: Amazon Redshift ことはじめ

全体図

PostgreSQLClient

User

S3

RedShiftTcp通信 :5439(RDBMS通信 )

S3へのファイルアップロード

(https) Access KeySecret Key

(S3アクセスして、CSV/TSVを取得 )

Page 6: Amazon Redshift ことはじめ

環境条件

上記3つがクリアできれば OK。つまり『会社・個人端末』や『 AWS EC2』等、好きなマシンで作業可能。

S3にファイルがアップロードできる

Redshiftに postgresqlクライアントでTCP通信出来る

AWS Access Key / Secret Keyを知っている

Page 7: Amazon Redshift ことはじめ

データ投入までの流れ

分析したいデータを、 CSV・ TSV形式でファイル保存

上記ファイルを、 S3にアップロード

psqlで COPYコマンドを発行し、ソース元を S3ファイルに指定

psqlで RedShiftにデータ投入用テーブルを作成する (create table)

通常のデータ一括投入と同様

Page 8: Amazon Redshift ことはじめ

テーブル作成時の注意点• テーブル型は

INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP

• おなじみの「 create table ~」でテーブル作成

Page 9: Amazon Redshift ことはじめ

投入時の注意点• 取込ファイルは TSV,CSV( json不可)• 文字コードは UTF-8• 投入中のエラーが1つでも有ると停止(スキップ不可)

Page 10: Amazon Redshift ことはじめ

投入エラー• データ型の不一致• 文字数オーバー• 項目数不足

とにかくここが肝。大量にデータがあるので、エラーパターンも尋常じゃなく多い…。

Apacheログなど、『不特定要素が有るログ』を一括投入するのは大変!投入前クリーニングを丁寧に行おう!

Page 11: Amazon Redshift ことはじめ

投入後処理• 後はただの PostgreSQL(互換 )なので、 psqlから SQLを投げる

• 特に解説することも無く…

Page 12: Amazon Redshift ことはじめ

自動化に向けて1. 解析したいデータを CSV化2. S3にアップロード3. psqlで COPY実行( RedShift取込)4. psqlで SQL発行し、結果を export

を Atmic処理。 3のデータ投入前に、『どうやってエラーがでないデータにするか?』がポイントかと。

Page 13: Amazon Redshift ことはじめ

以上