Amazon Web Services ブログ

Category: AWS Glue

Amazon EMR、AWS Glue、Amazon QuickSight を使用して自動データプロファイリングおよびレポートソリューションを構築する

 典型的な分析パイプラインでは、データレイクにデータをインポートした後に通常実行する最初のタスクの 1 つは、データプロファイリングと高レベルのデータ品質分析です。これにより、データセットのコンテンツをチェックします。このようにして、テーブル名、列名とそのタイプなどの情報を含む基本的なメタデータを充実させることができます。 データプロファイリングの結果は、データセットに予期した情報が含まれているかどうか、およびそれらを分析パイプラインのダウンストリームでどのように使用するかを決定するのに役立ちます。さらに、これらの結果は、オプションのデータセマンティクス分析ステージへの入力情報の 1 つとして使用できます。 最新のデータレイクには膨大な量のさまざまなタイプのデータがあり、構造化されていない手動のデータプロファイリングとデータセマンティクスの分析は非現実的で時間がかかります。この記事では、AWS Glue データカタログメタデータの拡張として、データプロファイリングリポジトリの自動作成プロセスを実装する方法と、レポートシステムについて説明します。レポートシステムは、分析パイプラインの設計プロセスを支援するもので、信頼性の高いツールを提供することでさらに分析を行えるようにします。 この記事では、AWS Glue データカタログのアプリケーションデータプロファイラーについて詳しく説明し、実装例をステップバイステップで示します。 概要とアーキテクチャ 次の図は、このソリューションのアーキテクチャを示しています。 AWS Glue データカタログのデータプロファイラーは、Apache Spark Scala アプリケーションです。これにより、Amazon Deequ ライブラリのプロファイリング機能を使用して、データカタログ内のデータベースで定義されたすべてのテーブルをプロファイリングし、その結果をデータカタログと Amazon S3 バケットにパーティション化された Parquet 形式で保存します。Amazon Athena や Amazon QuickSight などの他の分析サービスを使用して、データをクエリして視覚化できます。 Amazon Deequ データライブラリの詳細については、「Deequ を使用した大規模なテストデータ品質」、または GitHub リポジトリのソースコードをご覧ください。 メタデータは、「データに関するデータ」と定義できます。テーブルのメタデータには、テーブル名とその他の属性、列の名前とタイプ、データを含むファイルの物理的な場所などの情報が含まれています。データカタログは AWS のメタデータリポジトリであり、Athena、Amazon EMR、Amazon Redshift などの他の AWS のサービスで使用できます。 データベース内のテーブルのメタデータを作成または更新した後 (テーブルへの新しいデータの追加など)、AWS Glue クローラを使用して、または手動でアプリケーションを実行して各テーブルをプロファイルできます。結果は、テーブルのメタデータの新しいバージョンとしてデータカタログに保存されます。保存された結果は、AWS Lake Formation コンソールからインタラクティブに表示したり、AWS Glue […]

Read More

AWS Glue の自動コード生成機能とワークフローを利用して、データパイプラインをシンプル化する

 これまでの一連の記事では、AWS Glue のジョブブックマークを使用して Amazon S3 やリレーショナルデータベースからデータを増分ロードする方法についてご紹介しました。また、AWS Glue に最適化された Apache Parquet ライターを使用してパフォーマンスを向上させ、スキーマ進化を管理する方法についても説明しました。 3 つ目の記事となる今回は、次の 3 つのトピックを取り上げます。まず、特定の列を選択する、深くネストされたレコードを展開する、ネストされたフィールドを効率的に解析 (パース) する、列データの展開処理といった一般的なユースケースにおいて、AWS Glue でデータの変換に役立つコードを自動生成方法について説明します。 次に、AWS Glue のワークフローとCrawlers、Apache Spark 、Python Shell ETL ジョブといったさまざまな Glue コンポーネントを使用してデータパイプラインを構築し、オーケストレーションする方法について説明します。 最後に、ETL ジョブで SparkSQL を活用し、Amazon S3 とリレーショナルデータベースに保存されたデータセットで SQL ベースの変換を実行する方法について説明します。 自動コード生成と変換: ApplyMapping、Relationalize、Unbox、ResolveChoice AWS Glue では、さまざまなデータ変換タスクの実行に使用するコードを自動的に生成できます。これらの変換では、複雑で深くネストされたデータセットの処理するための、使いやすいインターフェイスを提供します。たとえば、一部のリレーショナルデータベースやデータウェアハウスは、ネストされたデータ構造をネイティブにサポートしていません。AWS Glue を使用すると、データをターゲットデータベースにロードする前にネストされたデータ構造を展開するためのコードを自動生成できるので、時間が節約できるだけでなく、技術に詳しくないユーザーでもデータを扱うことができます。 AWS Glue が提供する、データ処理をシンプル化するための変換のうち、よく利用されるものを次に示します。 ApplyMapping は、列の投影やデータ型の変更に使用される変換処理です。この例では、action.id などいくつかのフィールドのネストを解除し、トップレベルの action.id フィールドにマッピングします。また、id 列を long […]

Read More

AWS Data Exchange で TruFactor のウェブセッションインテリジェンスをクエリ、視覚化、予測する

データは無限にあるという性質を考えると、ビジネスの洞察を得るために適切なデータセットを見つけることは困難な場合があります。さまざまなデータセットの中央リポジトリにアクセスして、クエリ、視覚化、予測を行うことで、ビジネスを改善できます。AWS Data Exchange により、適切なデータセットを見つけることがはるかに簡単になりました。例として、ウェブセッションの訪問と人口統計に関するデータセットを使用して、どの人口統計グループが最も頻繁にウェブサイトにアクセスするかを理解するのに役立ちます。その後、機械学習 (ML) モデルと訪問予測を使用してビジネスを改善できます。 AWS Data Exchange では、クラウドでサードパーティのデータを簡単に検索、サブスクライブ、使用できます。AWS Data Exchange 内でデータ製品をサブスクライブした後、AWS Data Exchange API、AWS CLI や AWS マネジメントコンソールを使用して、データを直接 Amazon S3 にロードできます。その後、分析から機械学習に至るまで、さまざまな AWS のサービスでインポートされたデータを分析できます。 この記事では、AWS Data Exchange 上の TruFactor Intelligence-as-a-Service データを紹介します。TruFactor の匿名化プラットフォームと独自の AI は、ワイヤレスキャリア、OEM、モバイルアプリから毎日 850 億以上の高品質の生信号を取り込み、フィルターにかけ、物理的およびデジタルの次元にわたる統合された「フィジタル」消費者グラフに変換します。TruFactor インテリジェンスは、アプリケーション対応で AWS アナリティクスまたは ML サービス内で使用でき、AWS で実行されているモデルやアプリケーションを強化します。追加の処理は必要ありません。一般的なユースケースは次のとおりです。 消費者セグメンテーション – 米国のインターネット閲覧行動に関するウェブインテリジェンスは、興味、意見、価値観、デジタル行動、感情などの消費者の全体像を提供し、顧客と競合他社のセグメンテーションを伝えます。 顧客獲得またはチャーンキャンペーン – インターネットの閲覧行動は、新しい見込み顧客の類似性の特性を特定できるだけでなく、競合他社のウェブサイトに切り替える可能性も特定できます。 このチュートリアルでは、TruFactor の Daily Mobile Web Session […]

Read More

ワイヤレスサービスプロバイダー向けの AWS でクラウドネイティブのネットワークパフォーマンス分析ソリューションを構築する

この記事では、AWS のサービスを使用してネットワークパフォーマンス分析ソリューションを構築するサーバーレスのクラウドベースアプローチを紹介します。従量課金制の AWS サービスでコストを抑えながら優れた柔軟性とパフォーマンスを提供できます。 ネットワークパフォーマンスが優れていないと、リアルタイムの低レイテンシーサービスと、顧客が使用する総帯域幅を増やすといった課題に直面するため、苦労することになります。 最適なパフォーマンスモニタリングのために毎秒取り込み、保存や処理を行う必要がある大量のデータを考えると、標準のオンプレミスモニタリングアプローチはもう効率的ではありません。 クラウドネイティブのアプローチでは、ビジネスバリューを生み出すソリューションに投資し、初期費用と過剰なインフラのプロビジョニングを避けることで、通常の資本支出モデルから運用支出モデルに移行できます。 モバイルサービスプロバイダー向けのデータおよび音声ネットワークの複雑さ Cisco のグローバルモバイルデータトラフィック予測によると、2023 年までにモバイル接続デバイスを 131 億台備え、そのうち 14 億台が 5G 対応であると予測されています。 モバイルサービスプロバイダーは、アクセスネットワークとコアネットワークにおける正確なネットワーク計画とサイズ調整を行う方法について理解している必要があります。 ネットワークスループットに対する世界的な需要の増加、およびモバイルネットワークでの VoLTE、IoT、ビデオストリーミングなどのサービス数の増加により、モバイルサービスプロバイダーは、目的のサービス品質 (QoS) に一致する新しいアーキテクチャを実装する必要性に迫られています。 統合ネットワークで多数のサービスを実行しているときに、最適な QoS に対処することは簡単な作業ではありません。ワークフローは複雑です。多数の異なるネットワーク要素からカウンターと統計データを収集することから始め、ネットワークを介して提供される複数のサービスのいずれかの品質にリンクできるよう、収集したデータを重要業績評価指標 (KPI) に変換します。 4G、5G、および IoT サービスの導入による最新のモバイルネットワークでは、テリトリーに導入されるセルの数が増加しているため、カウンターを収集し、何千もの異なるネットワーク要素で KPI を生成する必要があります。 すべてのネットワーク要素が数千のカウンターを生成できることを考えると、ネットワークパフォーマンスシステムは、すべての収集サイクルで数百万の測定値を管理する必要があります。 高コストのソリューションなしでは、オンプレミスデプロイで大規模の管理を行うことは困難です。代わりに、AWS サービスを使用して、通信サービスプロバイダー (TSP) のさまざまな部門ですべての要件をカバーする、最新のネットワークパフォーマンス分析ソリューションを設計できます。 データと音声のネットワークアーキテクチャ サービスプロバイダーとして直面する主な問題は、最新のモバイルネットワークによる複雑さです。これは、過去数十年間に進化を遂げてきた一部の通信規格 (データコアでは 2G から 5G、音声コアでは CS から VoLTE) と、ハードウェアやネットワーク要素の機能に由来しています。 次の図は、現在デプロイされているモバイルワイヤレスネットワーク要素の簡略化されたスキーマを示しています。 2G から 5G の範囲に必要なネットワーク要素を備えたネットワークにアクセス コアネットワークには、ネットワーク上のすべてのユーザーに対してサービス、認証、データベースを提供するために必要なすべての機能でのネットワーク要素が含まれています。 音声 (PSTN/PLMN)、インターネット […]

Read More

データを段階的に読み込み、AWS Glue で最適化された Parquet ライター

 AWS Glue では、Apache Spark ETL ジョブによる分析およびデータ処理のために、さまざまなソースから大規模なデータセットを準備 (抽出および変換) およびロードするためのサーバーレス環境がご利用いただけます。シリーズの最初の記事である「AWS Glue を使った Apache Spark ジョブのスケーリングとデータパーティショニングのベストプラクティス」では、Apache Spark アプリケーションや Glue ETL ジョブの開発者、ビッグデータアーキテクト、データエンジニア、ビジネスアナリストが、AWS Glue で実行するデータ処理ジョブを自動的にスケーリングするのに役立つベストプラクティスをご紹介しました。 この記事では、JDBC を使用して Amazon S3 データレイクおよびデータベースのデータソースからデータを段階的にロードする方法を示します。また、ジョブブックマークを使用して新しく追加されたデータのみを読み取り、さらにジョブブックマークを前回のジョブ実行の最後にリセットして遅れて到着するデータを処理することで、AWS Glue ETL ジョブをスケーリングする方法についても説明します。さらにこの記事では、複雑な AWS Glue ETL スクリプトとワークロードを備えたジョブブックマークを使用したベストプラクティスについても確認しています。 最後に、データの余分なパスを回避し、実行時にスキーマを計算することにより、パフォーマンスに最適化されたカスタム AWS Glue Parquet ライターを使用する方法について説明します。AWS Glue Parquet ライターを使用すると、列を追加または削除して、データセットのスキーマを進化させることもできます。 AWS Glue ジョブブックマーク AWS Glue の Spark ランタイムには、状態を保存するメカニズムがあります。このメカニズムは、ETL ジョブを特定の方法で実行することで処理したデータを追跡するために用いられます。永続化された状態情報は、ジョブブックマークと呼ばれます。 上記のスナップショットは、同じ ETL ジョブの異なる時間インスタンスで複数のジョブを実行している Glue コンソールのビューを示しています。ジョブブックマークは、AWS […]

Read More

Amazon Athena を使用したクロスアカウントの AWS Glue データカタログ

多くの AWS のお客様は、複数アカウント戦略を用いています。一元化された AWS Glue データカタログは、異なるアカウント間におけるメタデータの共有に関連する管理の量を最小化するために重要です。この投稿では、Amazon Athena が異なる AWS アカウント間で一元化されたデータカタログをクエリすることを可能にする機能を紹介します。 ソリューションの概要 2019 年後半、AWS は、Amazon Athena を Apache Hive Metastore に接続する機能を導入しました。この機能により、別のアカウントのデータカタログをポイントするように Athena を設定することもできます。Hive Metastore 機能は、AWS Lambda 関数を使用して、選択したデータカタログにクエリをフェデレーションします。この同じ機能で、カタログクエリを別のアカウントのデータカタログにプロキシできます。 次の図は、2 つの異なるアカウントで使用される必要なコンポーネントと、Athena を使用したクロスアカウントの Glue データカタログアクセスのためのアカウント間のフローを示しています。 このチュートリアルでは、Athena クエリを実行するのと同じアカウント (アカウント B) で Lambda 関数を作成します。リソースポリシーを使用して Lambda 関数にクロスアカウントアクセスを許可します。これにより、アカウント B の関数がアカウント A のデータカタログをクエリできます。アカウント B のユーザーは、テーブルがポイントし、Lambda 関数を実行するためのアクセス権を有する Amazon S3 リソースへのアクセス権を持っている必要があります。Lambda 関数の実装の詳細は、Github リポジトリを参照してください。 この投稿では、Lambda 関数およびその関数の読み取り専用 IAM […]

Read More

FactSet が Amazon DynamoDB から Amazon S3 Parquet へのデータのエクスポートを自動化して、データ分析プラットフォームを構築する方法

この記事は、FactSet のリードソフトウェアエンジニアである Arvind Godbole と AWS プリンシパルソリューションアーキテクトの Tarik Makota によるゲスト投稿です。「FactSet は、世界中の何万人もの投資専門家向けの柔軟でオープンなデータとソフトウェアソリューションを作成し、投資家が重要な決定を下すために使用する金融データと分析に即座にアクセスできるようにします。FactSet では、製品が提供する価値を常に向上するために取り組んでいます」 私たちが検討してきた分野の 1 つは、クライアントの検索結果の関連性です。さまざまなクライアントの使用例と 1 日あたりの検索回数が多いため、匿名化された使用データを保存し、そのデータを分析してカスタムスコアリングアルゴリズムを使用して、結果を高めることができるプラットフォームが必要でした。計算をホストするために Amazon EMR を使用するのは明らかな選択肢でしたが、匿名化されたデータを Amazon EMR が使用できる形式に変える方法について疑問が生じました。そこで私たちは AWS と協力し、Amazon DynamoDB を使用して Amazon EMR で使用するデータを準備することにしました。 この記事では、FactSet が DynamoDB テーブルからデータを取得し、そのデータを Apache Parquet に変換する方法について説明します。Amazon S3 に Parquet ファイルを保存して、Amazon EMR でほぼリアルタイムの分析を可能にします。途中で、データ型変換に関連する課題に直面しました。これらの課題をどのように克服できたかについて説明しようと思います。 ワークフローの概要 ワークフローには次の手順が含まれています。 匿名化されたログデータは DynamoDB テーブルに保存されます。これらのエントリには、ログの生成方法に応じて異なるフィールドがあります。テーブルに項目を作成するたびに、DynamoDB ストリームを使用してレコードを書き出します。ストリームレコードには、DynamoDB テーブルの単一項目からの情報が含まれます。 AWS Lambda 関数は DynamoDB ストリームにフックされ、DynamoDB […]

Read More

【開催報告】第9回 AWS Data Lake ハンズオンセミナー

こんにちは。AWS ソリューションアーキテクトの上原誠(@pioh07)です。 9月27日に、「AWS Data Lake ハンズオンセミナー」を開催いたしました。去年から行ってきた恒例のワークショップで第9回目となります。去年から引き続き盛況で、今回も80名以上のお客様にご参加頂きました。 はじめに、AWSにおけるデータ活用のベストプラクティスである Amazon S3 を中心とした Data Lake について解説し、ビッグデータ分析基盤の考え方として有名なラムダアーキテクチャの解説を行いました。 当イベントでは、Amazon Athena や Amazon Redshift の各 AWS サービスを駆使して実際にラムダアーキテクチャを構築することがゴールです。とはいえ全てを構築するのはボリュームが大きいため、スピードレイヤー or バッチレイヤー or 全部入りでコース分けて取り組めるようハンズオンコンテンツを用意しました。最初にコースの説明を行い、出席いただいたお客様ご自身の課題に合わせてコースを選択頂き、ハンズオンを行っていただきました。今回、参加者も多くいらっしゃいましたので、サポートするソリューションアーキテクトも7名で対応させていただきました。 今回参加できなかった方も、ソリューションアーキテクトのサポートを受けながらハンズオンを行いログ分析を初めてみてはいかがでしょうか? 次回はハロウィンも待ち遠しい11月に開催予定です。ご参加お待ちしております。

Read More

MIMIC-III データと Amazon Athena を使用して、データベースなしでバイオメディカルインフォマティクスを実行

バイオメディカル研究者は、正確で詳細なデータにアクセスする必要があります。MIT MIMIC-III データセットは人気のあるリソースです。Amazon Athena を使用すると、最初にデータをデータベースにロードすることなく、MIMIC-III に対して標準 SQL クエリを実行できます。分析は常に MIMIC-III データセットの最新バージョンを参照します。 この投稿では、Athena で MIMIC-III データセットを使用可能にし、AWS の MIMIC-III 分析環境への自動アクセスを提供する方法について説明します。また、従来のデータベースを使用した MIMIC-III リファレンスバイオインフォマティクス研究と、Athena を使用した同じ研究を比較します。 概要 長期にわたって多くの患者のさまざまな測定値をキャプチャするデータセットは、研究の発見と改善された臨床的判断に分析と機械学習を用いて推進できます。これらの機能は、MIT 計算生物学研究所 (LCP) MIMIC-III データセットについて記述しています。LCP 研究者の発言: 「MIMIC-III は、2001 年から 2012 年にかけてベスイスラエルメディカルセンターの救命治療室に入院した患者約 6 万人の匿名化された健康関連データを含む、大規模な公開データベースです。MIMIC は、疫学、臨床的判断ルールの改善、電子ツールの開発に及ぶさまざまな分析研究をサポートしています。中でも 3 つの要因に注目したいと思います。まず、公開的かつ自由に利用可能で、ICU 患者の多様で大規模な集団を含みます。そして実験結果、電子文書、ベッドサイドモニターの傾向と波形を含む高時間解像度データを包含します」

Read More

[AWS Black Belt Online Seminar] AWS Glue 資料及び QA 公開

先日 (2019/8/6) 開催しました AWS Black Belt Online Seminar「AWS Glue」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。     20190806 AWS Black Belt Online Seminar AWS Glue AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. データソースをクロールする際にデータソース側で開放するポートはなんですか? A. データソースがVPC内に存在するRDSやRedshiftの場合、クローラーからアクセスするためには「すべての TCP ポート」に対して自己参照のインバウンドルールを持つセキュリティグループを指定します。自己参照ルールを作成することで、ソースを VPC 内の同じセキュリティグループに制限することができる為、ネットワーク全体には公開されません。なお、VPCのデフォルトのセキュリティグループには、すでに ALL Traffic (すべてのトラフィック) の自己参照インバウンドルールがある場合があります。 また、オンプレミスのデータベースを使用する場合、接続するデータベースのポートおよびネットワークへのアクセスができるように、ファイアウォールを設定していただく必要があります。下記、参考URLをご確認ください。 ・JDBC データストアに接続するための VPC の設定はこちら ・How to access and analyze on-premises data stores using AWS Glue(英語)はこちら Q. AWS BatchとGlue (python […]

Read More