DEA/DAS のお勉強書き連ね②
雑メモ
KDFでのデータロードまでのバッファ間隔
最低60秒
Athena のアクセス制御
ワークグループを作成することでワークグループごとに実行クエリ保存、クエリ結果の制限、メトリクスの表示、スキャン対象データの上限設定などができる
*IAMではサービスレベルでのアクセス制御
EMRのスケーリング
マネージドスケーリング: EMRクラスターのメトリクスを5~10秒ごとに評価しスケーリング
カスタム自動スケーリング: ユーザ定義のメトリクス、ポリシーで5分間隔で評価しスケーリング
Athena のパフォーマンス向上
ファイルフォーマット、GZIPへの圧縮、フォルダ構造以外に128MB未満のファイルを大きくしてもパフォーマンスが向上する
*Apache ORC の GZIP 圧縮はサポートされていないので SNAPPY 形式で圧縮する
S3 から Redshift へのデータのロード方法
INSERT/DELETE/COPY
*COPY が一番効率がいい
KDS の重複レコードの主な原因
- プロデューサ側のタイムアウト的問題での再試行
- ワーカーの予期せぬ終了によるレコードプロセッサの再起動
- ワーカーインスタンスが追加/削除されたことによるレコードプロセッサの再起動
- コンシューマ側のアプリケーションデプロイによるレコードプロセッサの再起動
Glue の増分ジョブ実行
ジョブブックマークを使用することで帯ジェクトの最終更新日時から増分データのみ処理が可能、また、実行以前の状態に戻すロールバックもできる
KDSのデータ処理時にパーテーションキーが同一だと処理するシャードが偏りパフォーマンスが悪くなることがある
EMRのEMRFSで使用するIAMロールはセキュリティ設定に該当しなかった場合、サービスロールの権限が使用される
- S3へのアクセスを制限するサービスロール(EMRロール)を作成する
- チームごとにEMRFS用のIAMロールを作成しサービスロール(EMRロール)を引き受けられるように信頼ポリシーを設定する
- EMRFS用のIAMロールをマッピングするセキュリティ設定を作成してEMRクラスターに割り当てる
Redshift Spectrumで作成した外部テーブルには更新/削除クエリを実行することはできない
Redshift Data API
*非同期 = 実行したレスポンスで結果が返ってくるものではない = 別途クエリ結果の取得が必要
JDBC/ODBC を使ったクラスターへの接続が必要なくなる → 通信経路を開けなくてもよくなる
レスポンスサイズは 100M まで
S3 Storage Lens
→ライフサイクルポリシーの有無やリクエストを確認することでコスト最適化に使うことが出来る
Concurrency scale
Redshift で同時ユーザとクエリからの大量の要求を処理する必要がある際に使用
スケーリングクラスタという一時キャパシティを追加して処理を行う
*WLM(Work Load Management: ワークロード管理): 各キューに優先度をつけて処理を実行できる
Vacuum
データベース内を再ソートする
Glue 実行タイプ
- Spark ジョブ(Standard)
- Spark ジョブ (Flex)
- Python シェルジョブ
Spark DataFrame
DataframeとはSpark上でParquetやCSVといったファイルをデータベースのテーブルのように扱うことができるオブジェクト
*概念上、データフレームは、一般的なオブジェクトDataset[Row]のコレクションに対するエイリアス。ここで、Rowは一般的な型付けのないJVMオブジェクト
一方、データセットは、強い型付けのJVMオブジェクトであり、ScalaあるいはJavaクラスで定義するケースクラスで表現される
DynamicFrame
AWS Glueで独自に定義されたデータ構造
DataFrame と似ているけど内部で複数の型を持っている場合などに柔軟に処理が出来る
ちょっと古いけど:https://dev.classmethod.jp/articles/aws-glue-dynamicframe/
EMR のプロビジョニングタイムアウト
設定すると、スポットインスタンスを使用している中、ターゲットキャパシティにスポットインスタンスでは足らない場合、足らない分をオンデマンドキャパシティで補うことが出来る
→ターゲットキャパシティに対する SLA の準拠のため
Glue スキーマレジストリ
KPL と KCL を統合しストリーミングデータのスキーマの変更を追跡できる
*ストリーミングデータの進化の検証とは。。。?
EMR から S3 にデータ保存する際のデータ転送暗号化方法
証明書を zip ファイルにして S3 にアップロードしてそれを転送時の暗号化アーティファクトとして使用する
KDA のクエリ処理
Tumbling Windows
特定の時間で区切ってクエリを行う *データの重複はないが、時間の区切りをまたいで関連するデータが来た場合処理が分かれてしまう
Stagger Windows(ずらしウィンドウ)
パーミッションキーベースでのウィンドウで処理を行うため、 Tumbling Windows のように必要なデータが途中で別れることがない
→一貫性のないタイミングでのデータクエリに適している
Slidin Windows
特定の時間ごとにスライドしながらクエリを行う *同一のデータが重複して含まれる可能性がある
→特定時間ごとの集計では使える (過去何分のデータなど)
Discussion