SEが最近起こったことを書くブログ

ITエンジニアが試したこと、気になったことを書いていきます。

AWS Certified Data Analytics - Specialtyのために勉強したことまとめ

AWS Certified Data Analytics - Specialtyを受験のために、勉強中に学んだことをこのページに記述していく ※更新中

RedShift

自動スナップショット

Redshiftでは、自動スナップショットを取得できる. デフォルトだと、8時間ごとまたは1ノードのデータが5GB変更されるごとにスナップショットが作成される

参考URL

docs.aws.amazon.com

列レベルのセキュリティ

Redshiftは、列レベルのアクセス制御を実現できる Grant文で列レベルのアクセスを制御できる

参考URL

aws.amazon.com

docs.aws.amazon.com

同時実行スケーリング

Redshiftでは、同時実行スケーリングが有効になっている場合、自動的に新たなクラスタ容量を追加し、クエリの増加に対応する。 クエリをメインクラスタと同時実行スケーリングクラスタのどちらで実行してもユーザには最新のデータが表示される

参考URL

docs.aws.amazon.com

ログファイルに記録していること

  • 接続ログ
    • 接続試行、接続、切断
  • ユーザーログ
    • データベースのユーザ定義の変更に関するログ
  • ユーザアクティビティログ
    • 各クエリをデータベースで実行する前にログに記録される

参考URL

docs.aws.amazon.com

サイズ変更について

  • 伸縮自在なサイズ変更(Elastic resize)
    • サイズ変更に、10~15分かかる
    • 基本的にはこちらを使用することがおすすめ
    • 大幅にサイズ変更する場合や単一ノードクラスタの場合など使用できない場合がある
  • 従来のサイズ変更 (Classic resize)
    • サイズ変更中、クラスターは読み取り専用になる
    • 数時間~数日以上かかる

参考URL

docs.aws.amazon.com

行末記号について

  • キャリッジリターンを行末記号として認識しない
    • COPYコマンドでロードする際にエラーが出ずに何もロードされないことがある

参考URL

aws.amazon.com

COPYコマンドのマニュフェスト

  • 以下の目的で使う
    • 必要なすべてのファイルを読み込む
    • 不要なファイルを読み込まない

マニフェストを利用すると、必要なファイルが足りない場合はエラーが発生する。 また、マニフェストにないファイルは無視する

参考URL

docs.aws.amazon.com

QuickSight

行レベルのセキュリティ

行レベルのセキュリティを利用して、データセットへのアクセスを制限できる。 指定した各ユーザ、グループにはデータセットルールのフィールド値に一致する行のみが表示される。 Enterprise Editionでのみ行レベルのセキュリティを設定できる

参考URL

docs.aws.amazon.com

SPICEデータの更新

QuickSightは、毎日、毎週、毎月などのスケジュールでSPICEデータを更新できる。 Enterprise Editionのみ毎時更新できる。

参考URL

docs.aws.amazon.com

データ保管時の暗号化

Standard Editionだと暗号化されない。 Enterprise Editionだと、SPICEが保管しているデータがAWS管理キーで暗号化される。 ※メタデータおよび、SPICEにアップロードしたデータのみが保存される。

参考URL

docs.aws.amazon.com

Athena

ワークグループについて

  • Athenaのワークグループでは、各ワークグループで実行されたクエリだけ保存されたクエリ、クエリ履歴が表示される。
    • 他のワークグループのクエリを見ることができない
  • ワークグループごとにクエリでスキャンするデータ量を制限したり、制限を超えた時にアラームを発行するSNSトピックを作成できる

参考URL docs.aws.amazon.com

docs.aws.amazon.com

クエリの制約について

  • S3 Glacier または S3 Glacier Deep Archive ストレージクラスのデータのクエリをサポートしない
  • クロスリージョンのクエリを実行できる
    • ただし、どのリージョンの組み合わせでも実行できるわけではない

参考URL

docs.aws.amazon.com

Kinesis

サーバサイド暗号化

Kinesis Data Streamsにはサーバサイド暗号化の機能があり、KMS CMKを指定すれば、Kinesisのストレージに書きこまれる前に自動的に暗号化され、ストレージから取得した後に復号化することができる。 ※プロデューサやコンシューマーは暗号化オペレーションを管理する必要はない

参考URL

docs.aws.amazon.com

Lambdaでの並列処理

Kinesis Data StreamsをLambdaで処理する際に、ParallelizationFactorを指定するとパーティションキーレベルで順序通りに処理しつつ、 同時処理で則を上げるごとができる。

参考URL

docs.aws.amazon.com

Kinesis Data Analyticsの3パターンのウィンドウタイプについて

  • Stagger Windows
    • 一貫性のない間隔に届くデータのグループを分析する際に使う。重複して処理しない
  • タンブリングウィンドウ
    • 一定間隔に届くデータのグループを分析する際に使う。重複して処理しない
  • スライディングウィンドウ
    • 直近のウィンドウ期間のグループを分析する際に使う。重複して処理する

参考URL

docs.aws.amazon.com

dev.classmethod.jp

Glue

ブックマーク

Glueのブックマークを利用すると、すでに処理されたデータを追跡できる。 つまり、すでに処理したことを再処理しないために役立つ。 再実行する際に新しいデータだけを処理できる。 ブックマークキーを利用して、処理済みかどうかを判定する。

参考URL docs.aws.amazon.com

Glue Data Catalogについて

コンソールやCreate Tableコマンドなどを利用して、AWS Glue Data Catalogテーブルを手動で作成し、 AWS Glueクローラを利用して、更新状態を維持することもできる。 カタログテーブル名を自由に選択したい場合などに利用する。

参考URL

docs.aws.amazon.com

DynamicFrameWriter

GlueのSpark Jobから重複なくRedshiftにデータを追加する場合は、 GlueでステージングテーブルにRedshiftのデータをロードする DynamicFrameWriterクラスを利用し、Redshiftの既存行を置き換える。

参考URL

docs.aws.amazon.com

aws.amazon.com

docs.aws.amazon.com

docs.aws.amazon.com

Lake Formation

  • クロスアカウントアクセスをコントロールできる
    • 列レベルで共有範囲を調整できる

参考URL

docs.aws.amazon.com

EMR

データ保管時の暗号化

  • EBSボリュームの暗号化
    • LUKJS、EBS暗号化
  • EMRFS暗号化
    • SSE-S3、SSE-KMS、CSE-KMS、CSE-C

参考URL

docs.aws.amazon.com