amazon redshift ことはじめ
DESCRIPTION
Amazon Redshiftって何?ビッグデータ解析に使えるらしいんだけど?っていう人が、とりあえず理解出来るように書きました!TRANSCRIPT
![Page 1: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/1.jpg)
Amazon Redshiftことはじめ
![Page 2: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/2.jpg)
前提条件• 『 Redshiftを簡単に理解』する事を目的にしています。そのため、説明をバッサリと省略してます。
• DynamoDBを使うパターンもありますが、ここでは割愛しています
• PostgreSQLにアクセスできればクライアントは何でも良いですが、ここでは psqlとします
![Page 3: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/3.jpg)
Redshiftとは?• AWSの DBサービス• 端的に言えば AmazonRDSと同様• 大規模データの分析に向いてる DB• PostgreSQLベース( Ver8.0.2)– SQL ・各種コマンドも Postgresqlと一緒–学習コストは『 Postgresqlのみ』– 8.4クライアントでも実行可能– Cent-OS 6なら「 yum install postgresql」
![Page 4: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/4.jpg)
費用起動時間ごとの課金制。『起動しっぱなし』か、『スポットで起動させる』かは要件次第。 XLと 8XLの違いは処理速度。
![Page 5: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/5.jpg)
全体図
PostgreSQLClient
User
S3
RedShiftTcp通信 :5439(RDBMS通信 )
S3へのファイルアップロード
(https) Access KeySecret Key
(S3アクセスして、CSV/TSVを取得 )
![Page 6: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/6.jpg)
環境条件
上記3つがクリアできれば OK。つまり『会社・個人端末』や『 AWS EC2』等、好きなマシンで作業可能。
S3にファイルがアップロードできる
Redshiftに postgresqlクライアントでTCP通信出来る
AWS Access Key / Secret Keyを知っている
![Page 7: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/7.jpg)
データ投入までの流れ
分析したいデータを、 CSV・ TSV形式でファイル保存
上記ファイルを、 S3にアップロード
psqlで COPYコマンドを発行し、ソース元を S3ファイルに指定
psqlで RedShiftにデータ投入用テーブルを作成する (create table)
通常のデータ一括投入と同様
![Page 8: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/8.jpg)
テーブル作成時の注意点• テーブル型は
INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, BOOLEAN, CHAR, VARCHAR, DATE, TIMESTAMP
• おなじみの「 create table ~」でテーブル作成
![Page 9: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/9.jpg)
投入時の注意点• 取込ファイルは TSV,CSV( json不可)• 文字コードは UTF-8• 投入中のエラーが1つでも有ると停止(スキップ不可)
![Page 10: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/10.jpg)
投入エラー• データ型の不一致• 文字数オーバー• 項目数不足
とにかくここが肝。大量にデータがあるので、エラーパターンも尋常じゃなく多い…。
Apacheログなど、『不特定要素が有るログ』を一括投入するのは大変!投入前クリーニングを丁寧に行おう!
![Page 11: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/11.jpg)
投入後処理• 後はただの PostgreSQL(互換 )なので、 psqlから SQLを投げる
• 特に解説することも無く…
![Page 12: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/12.jpg)
自動化に向けて1. 解析したいデータを CSV化2. S3にアップロード3. psqlで COPY実行( RedShift取込)4. psqlで SQL発行し、結果を export
を Atmic処理。 3のデータ投入前に、『どうやってエラーがでないデータにするか?』がポイントかと。
![Page 13: Amazon Redshift ことはじめ](https://reader035.vdocuments.pub/reader035/viewer/2022081413/54831969b4af9f7d0d8b4939/html5/thumbnails/13.jpg)
以上