« AWS Black Belt Online Seminar「AWS Summit Tokyo 2017 まとめ」の資料およびQA公開 | メイン | [AWS Black Belt Onine Seminar] AWS Snowball 資料及びQ&A公開 »

[AWS Black Belt Onine Seminar] Amazon Redshift Update - 最近追加された新機能とRedshift Spectrumの解説

こんにちは、パートナーソリューションアーキテクト(PSA)の相澤です。

先日開催致しました AWS Black Belt Online Seminar 「Amazon Redshift Update - 最近追加された新機能とRedshift Spectrumの解説」の資料を公開いたしました。当日参加者の皆様から頂いたQAの回答と併せてご紹介致します。

今後のAWS Black Belt Online Seminarのスケジュールは こちら です。皆様のご参加をお待ちしております。

 

 
【Q&A】

Q1. Redshift Spectrum と Athenaの違い(使い分け)はなんですか?
A1. サービスの選択はどのようなワークロード、ユースケースかによって変わるため一概には決められないのですが、一般的な使い方としてはRedshiftはデータウェアハウスを構築するのに向いています。定常的にデータが更新され、分析を続けるという用途(DWH)にはRedshiftをご検討いただくのが良いでしょう。

一方で新しいサービスやデータが速いペースで作られ、対象データが頻繁に変わっていくようなケースでの分析にはAthenaが便利です。Athenaはサーバレスであり、事前にクラスターを作成しなくてもCREATE EXTERNAL TABLEで表を作成してすぐに分析が可能です。使っていない時間はコストを抑えられ、管理コストが掛からないというメリットもあります。

 

Q2. クライアントがEC2の場合、Internetへの経路かVPCエンドポイントへの経路が必要になりますか?
A2. ご質問の意図を理解しかねているかもしれませんが、Redshift Spectrumを利用するうえでは、Internetへの経路は必要ありません。

 

Q3. Athenaで作成したテーブル定義は、redshift spectrumでそのまま流用出来るのでしょうか?
A3. 多くはそのまま利用可能ですが、Spectrum側で対応していない定義(例:配列)などもあり、そのまま流用できない場合もあります。
詳細は以下のドキュメントをご参照ください。
http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-spectrum-external-schemas.html

 

Q4. spectrum のIAMロールですが、S3からRedshiftのアクセスをLIST・GET許可すればよいということでしょうか?
A4. データを保存したS3バケットに対してLISTとGETができる権限を持ったロールをご利用ください。

 

Q5. 暗号化されているS3のオブジェクトには対応されているのでしょうか?
A5. 対応しております。詳細は以下のドキュメントをご参照ください。
http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c-spectrum-data-files.html

 

Q6. Spectrumだけを使用しようとした場合サイジングは必要ですか?
A6. Spectrum層へのリクエストや、Spectrum層からデータを受け取った後の処理はRedshiftクラスター側で行っているため、
Spectrumのみ利用する場合でも適切なパフォーマンスが発揮できるかのサイジングは必要です。

 

Q7. ディメンジョンを redshift に置くのは、そっちのほうが処理が早いからですかね?
A7. ファクトとディメンジョン、どちらをS3およびローカルに置いていただいても動作しますが、一般的にはディメンジョンは更新が少なくまたデータサイズもファクトより小さい傾向があるため、一度Redshiftのローカルに取り込んでおいた方が、速度面や費用面でメリットが大きい傾向があると考えられます。

 

Q8. コストですがスキャンデータが1GBだったとしても1回5$かかりますか?
A8. その月でのトータルS3スキャン量を合算し、その合計の1TBあたり$5の費用がかかります。

 

Q9. CLIやSDKから処理を実行することは可能でしょうか?
A9. RedshiftにSQLを送信して実行できる環境からであれば、Spectrumの機能がご利用いただけます。

 

Q10. year=2016 って、ディレクトリの名前ですか?
A10. Hive formatでのディレクトリ名です。「パーティション列名=値」の形でディレクトリ(プリフィクス)を作成します。

 

Q11. MobileAnalyticsで取得しているデータがS3へAutoExportされています。これをSpectrumで読み込むことができますか?
A11. MobileAnalyticsが出力するデータはJSON形式です。現時点ではSpectrumはJSON形式には対応していないため、そのまま読み込むことはできません。
Redshiftローカルに対してはJSONデータを読み込むことが可能です。詳細は以下のドキュメントをご参照ください。
http://docs.aws.amazon.com/ja_jp/redshift/latest/dg/copy-usage_notes-copy-from-json.html

 

Q12. RedshiftとAthenaは同一リージョンである必要はありますか?
A12. 同じリージョンにあるAthenaに自動的にメタデータを保存します(同一リージョンにしか保存できません)。
独自のHive Metastoreを構築してそこにメタデータを保存することは可能ですが、そのサーバはRedshiftと同一VPC内にある必要があります。

 

Q13. CTASではなく、事前に CREATE TEMPORARY TABLE しておいて INSERTする場合は 従来より圧縮形式等を自由に指定しておくことができたという理解でよいでしょうか?
A13. CREATE TEMPORARY TABLEでは利用者が列に圧縮エンコードを指定することが可能です。

 

Q14. Spectrumで作った外部表からCTASしてRedshift内にテーブルを作ることは可能でしょうか?
A14. 外部表の結果を元にCTASでRedshiftローカルディスク上に表を作成することは可能です。このためSpectrumをS3からのロード処理に利用することが可能です。

 

Q15. Spectrumは、サーバーレスでは無いのですか?
A15. Redshift Spectrumは、Redshiftクラスターと、Spectrum層でできています。Spectrum層はサーバレスのサービスですが、Redshiftクラスター自体は(RDSなどと同じで)サーバという概念があります。

 

Q16. Redshift Spectrumと EMR(Hive)を直に使用するのとでは、Redshift Spectrumの方が優位性があるでしょうか。Redshift Spectrumの方が不利(デメリット)がある点はありますか。
A16. EMR上にSQLクエリーエンジンを導入することで、Redshift SpectrumやAthenaと同じようにS3上のデータにSQLを実行する環境を作成することが可能です。
優位性については、ユースケースによって大きく異なるため一概には答えづらいですが、Redshift Spectrumは、Redshiftの機能、つまりオプティマイザやSQL構文を使うことができ、ローカルディスクともジョインできるのがメリットです。EMRの方は、クラスターサイジングやどういったアプリケーションを動かすかといった部分まで自由に選択できるというメリットがあります。

 

Q17. Parquet形式のファイルを日付単位のパーティショニングでS3に格納するケースにおいて、ある日を境にParquetに新しいカラムが追加された場合、Redshift Spectrumはカラム追加の前後のパーティションを一度にクエリする事は可能でしょうか?
A17. 表の構造と表定義がずれてしまっているためクエリできないと考えられます。

 

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2017年8 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31