今日の世界では、顧客は膨大な量のデータを社内で管理しています。 Amazon シンプル ストレージ サービス (Amazon S3) データレイク。データ レイアウトの変更を継続的に理解し、それを消費システムで利用できるようにするには、複雑なデータ パイプラインが必要です。 AWSグルー クローラーは、AWS Glue データカタログにデータをカタログ化する簡単な方法を提供し、スキーマ管理とデータ分類に関する重労働を軽減します。 AWS Glue クローラーは、Amazon S3 からデータスキーマとパーティションを抽出してデータカタログに自動的に入力し、メタデータを最新の状態に保ちます。
しかし、時間の経過とともにデータが指数関数的に増加すると、特定のテーブル内のパーティションの数が大幅に増加する可能性があります。 なぜなら、分析サービスには次のようなものがあるからです。 アマゾンアテナ 数百万のパーティションを含むテーブルをクエリすると、パーティションの取得に必要な時間が増加し、クエリの実行時間が長くなる可能性があります。
現在、AWS Glue クローラーのサポートが拡張され、新しく検出されたテーブルのパーティション インデックスが自動的に追加され、パーティション化されたデータセットでのクエリ処理が最適化されています。 クローラーの実行中にクローラーが新しいデータ カタログ テーブルを作成するときに、すべての数値および文字列タイプのパーティション列の最大順列をキーとして使用して、デフォルトでパーティション インデックスも作成されるようになりました。 次に、Data Catalog はこれらのキーに基づいて検索可能なインデックスを作成し、数百万のパーティションを持つテーブルのパーティション メタデータの取得とフィルタ処理に必要な時間を短縮します。 パーティション インデックスの作成は、Athena 上で実行される分析ワークロードに利益をもたらします。 アマゾンEMR, AmazonRedshiftスペクトラム、AWS Glue。
この投稿では、AWS Glue クローラーを使用してパーティション インデックスを作成する方法を説明し、Athena のパーティション インデックスを使用した場合と使用しない場合でクロールされたデータにアクセスしたときのクエリ パフォーマンスの向上を比較します。
ソリューションの概要
私たちは使用します AWS CloudFormation ソリューション リソースを作成するためのテンプレート。 次のステップでは、AWS Glue コンソールまたは AWSコマンドラインインターフェイス (AWS CLI)。 次に、Athena を使用したクエリ パフォーマンスの向上を比較します。
前提条件
この投稿を進めるには、へのアクセス権が必要です。 AWS IDおよびアクセス管理 AWS CloudFormation を使用してリソースを作成するための (IAM) 管理者ロール。
ソリューション リソースを設定する
CloudFormation テンプレートは、次のリソースを生成します。
- IAMの役割とポリシー
- スキーマを保持する AWS Glue データベース
- 高度に分割されたデータセットを指す AWS Glue クローラー
- クエリ結果を保存するための Athena ワークグループとバケット
ソリューション リソースを設定するには、次の手順を実行します。
- にログインします。 AWSマネジメントコンソール IAM管理者として。
- 選択する 発射スタック CloudFormation テンプレートをデプロイするには:
- DatabaseName、デフォルトのままにします
blog_partition_index_crawlerdb
. - 選択する Next.
- 最後のページで詳細を確認し、選択します AWS CloudFormationがIAMリソースを作成する可能性があることを認めます.
- 選択する スタックを作成.
- スタックが完成したら、AWS CloudFormation コンソールで、 出力 スタックのタブ。
- の値をメモします。
DatabaseName
およびGlueCrawlerName
.
このスタックがデプロイするリソースの一部は、使用時にコストが発生します。
AWS Glue クローラーを編集して実行する
AWS Glue クローラを設定して実行するには、次の手順を実行します。
- AWS Glue コンソールで、選択します Crawlers ナビゲーションペインに表示されます。
- 動画内で
crawler blog-partition-index-crawler
選択して 編集. - 出力とスケジューリングを設定する セクション 詳細オプション選択 パーティションインデックスを自動的に作成する.
- クローラーの設定を確認して更新します。
あるいは、AWS CLI を使用してクローラーを設定することもできます (IAM ロールとリージョンを指定します)。
- 次に、クローラーを実行し、クローラーの実行が完了したことを確認します。
これは高度に分割されたデータセットであり、完了までに約 90 分かかります。
パーティションテーブルを確認する
AWS Glue データベース内 blog_partition_index_crawlerdb
、テーブルが highly_partitioned_table
創造された。
デフォルトでは、クローラは、パーティション列 (数値または文字列) の順序が同じである有効な列タイプのパーティション列の最大の順列に基づいてインデックスを決定します。 クローラーによって作成されたテーブルの場合 (highly_partitioned_table
)、パーティション列があります year
(ストリング)、 month
(ストリング)、 day
(文字列)、および hour
(弦)。
この定義に基づいて、クローラは年、月、日、時間の順列に関するインデックスを作成しました。 クローラーは、接頭辞が次のインデックスを作成しました。 crawler_
デフォルトで作成されるパーティション インデックスに対して。
テーブルに移動して同じことを確認します highly_partitioned_table
AWS Glue コンソールで、 インデックス タブには何も表示されないことに注意してください。
クローラーは S3 データ ソースをクロールし、テーブルのパーティション インデックスを正常に設定することができました。
Athena を使用したクエリ パフォーマンスの向上を比較する
まず、パーティション インデックスを使用せずに、Athena でテーブルをクエリします。 Athena を使用してテーブルを検証するには、次の手順を実行します。
- Athenaコンソールで、
crawler-primary-workgroup
Athena ワークグループとして選択し、 認める. - 次のクエリを実行します。
次のスクリーンショットは、パーティション インデックスを使用してフィルタリングを有効にしない場合、クエリに約 32 秒かかったことが示されています。
- 次に、Athena クエリでパーティション インデックスを有効にします。
- 次のクエリを再度実行し、ランタイムを記録します。
次のスクリーンショットは、クエリにかかった時間がわずか 700 ミリ秒であることを示しています。これは、パーティション インデックスを使用してフィルタリングを有効にするとはるかに高速になります。
クリーンアップ
AWS アカウントへの不要な請求を避けるために、AWS リソースを削除できます。
- CloudFormation スタックの作成に使用される IAM 管理者として CloudFormation コンソールにサインインします。
- 作成した CloudFormation スタックを削除します。
まとめ
この投稿では、パーティション インデックスを作成するように AWS クローラーを設定する方法を説明し、Athena のインデックスを使用してデータにアクセスするときのクエリ パフォーマンスを比較しました。
テーブルにパーティションインデックスが存在しない場合、AWS Glue はテーブルのすべてのパーティションをロードし、ロードされたパーティションをフィルタリングするため、メタデータの取得が非効率になります。 Redshift Spectrum、Amazon EMR、AWS Glue ETL Spark DataFrame などの分析サービスは、インデックスを利用してパーティションを取得できるようになり、クエリのパフォーマンスが大幅に向上します。
さまざまな分析エンジンにわたるパーティション インデックスとクエリ パフォーマンスの詳細については、次を参照してください。 AWS Glue データカタログのパーティションインデックスを使用して Amazon Athena クエリのパフォーマンスを向上させる および AWS Glue パーティションインデックスを使用してクエリのパフォーマンスを向上させる.
このクローラー機能の立ち上げに貢献してくださった皆様、Yuhang Chen、Kyle Duong、Mita Gavade に心より感謝いたします。
著者について
シュリヴィディヤ・パルタサラティ AWS Lake Formation チームのシニア ビッグデータ アーキテクトです。 彼女は、データ メッシュ ソリューションを構築し、それをコミュニティと共有することを楽しんでいます。
サンディープ・アドワンカー AWS のシニア テクニカル プロダクト マネージャーです。 カリフォルニア ベイ エリアに拠点を置く彼は、世界中の顧客と協力して、ビジネス要件と技術要件を製品に変換し、顧客がデータの管理、保護、およびアクセスの方法を改善できるようにしています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- EVMファイナンス。 分散型金融のための統一インターフェイス。 こちらからアクセスしてください。
- クォンタムメディアグループ。 IR/PR増幅。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/efficiently-crawl-your-data-lake-and-improve-data-access-with-aws-glue-crawler-using-partition-indexes/
- :持っている
- :は
- :どこ
- $UP
- 1
- 100
- 11
- 27
- 32
- 8
- 9
- 90
- a
- できる
- アクセス
- アクセス
- 認める
- 越えて
- 加えます
- 管理人
- 再び
- すべて
- 沿って
- また
- Amazon
- アマゾンアテナ
- アマゾンEMR
- Amazon Webサービス
- 金額
- an
- 分析的
- 分析論
- および
- どれか
- 約
- です
- AREA
- 周りに
- AS
- At
- 自動的に
- 利用できます
- 避ける
- AWS
- AWS CloudFormation
- AWSグルー
- AWSレイクフォーメーション
- ベース
- ベイ
- なぜなら
- き
- 利点
- ビッグ
- ビッグデータ
- 建物
- ビジネス
- by
- カリフォルニア州
- 缶
- カタログ
- 原因となる
- 変更
- 課金
- チェン
- 選択する
- 選択する
- 分類
- コラム
- コラム
- comes
- コミュニティ
- 比較します
- 比べ
- コンプリート
- 領事
- 連続的に
- 貢献
- コスト
- クローラー
- 作ります
- 作成した
- 作成します。
- 作成
- 創造
- 電流プローブ
- Customers
- データ
- データアクセス
- データレイク
- データベース
- 中
- デフォルト
- 実証します
- 展開します
- 配備する
- 説明する
- 細部
- 決定する
- 発見
- ダウン
- 間に
- 効率良く
- どちら
- enable
- 使用可能
- エンジン
- エーテル(ETH)
- 誰も
- 拡大
- 説明
- 指数関数的に
- エキス
- データを抽出する
- 速いです
- 特徴
- filter
- フィルタリング
- フィルター
- ファイナル
- フォロー中
- 形成
- から
- 生成
- 与えられた
- 世界
- 成長する
- 成長
- 持ってる
- he
- ヘビー
- 重いもの
- 非常に
- 時間
- 認定条件
- How To
- HTML
- HTTP
- HTTPS
- IAM
- アイデンティティ
- 改善します
- 改善
- 改善
- in
- 増える
- 増加
- index
- インデックス
- 非効率的な
- 情報
- に
- IT
- JPG
- キープ
- 保管
- キー
- 湖
- 最大の
- 起動する
- レイアウト
- フェイスリフト
- ような
- LINE
- 負荷
- make
- 管理します
- 管理
- マネージャー
- メッシュ
- かもしれない
- 何百万
- 分
- 月
- 他には?
- ずっと
- しなければなりません
- ナビゲート
- ナビゲート
- ナビゲーション
- 必要とされる
- 新作
- 新しく
- いいえ
- 今
- 数
- of
- on
- の
- 最適化
- or
- 注文
- 私たちの
- 出力
- が
- ページ
- ペイン
- path
- パフォーマンス
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポスト
- 現在
- 処理
- プロダクト
- プロダクトマネージャー
- 製品
- 提供します
- 縮小
- 地域
- の提出が必要です
- 要件
- 必要
- リソース
- 結果として
- 結果
- 職種
- 役割
- ラン
- ランニング
- 同じ
- 秒
- セクション
- 安全に
- シニア
- サービス
- セッションに
- 設定
- シェアリング
- 彼女
- 作品
- 重要
- 著しく
- 簡単な拡張で
- 溶液
- ソリューション
- ソース
- スパーク
- スペクトラム
- スタック
- ステップ
- ストレージ利用料
- 店舗
- 簡単な
- 文字列
- 首尾よく
- サポート
- システム
- テーブル
- 取る
- チーム
- 技術的
- template
- 感謝
- それ
- アプリ環境に合わせて
- それら
- その後
- ボーマン
- 彼ら
- この
- 時間
- 〜へ
- 今日の
- 取った
- 翻訳する
- true
- type
- 下
- わかる
- 不要な
- アップデイト
- つかいます
- 中古
- 活用する
- 値
- 価値観
- さまざまな
- 広大な
- 確認する
- バージョン
- ました
- 仕方..
- we
- ウェブ
- Webサービス
- いつ
- which
- 誰
- 意志
- 無し
- ワークグループ
- 作品
- 世界
- ヤムル
- 年
- 貴社
- あなたの
- ゼファーネット