Amazon Web Services ブログ

Category: AWS Glue

データを段階的に読み込み、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

AWS Lake Formation でデータレイクを構築、保護、管理

データレイクとは、複数の分析アプローチおよびグループによる分析向けの、多様なデータタイプの集中型ストアです。多くの組織がデータをデータレイクに移行させています。この記事では、AWS Lake Formation を使用してデータレイクを構築、保護、管理する方法を紹介します。 従来、組織は、オンプレミスデータウェアハウスアプライアンスといった柔軟性に欠ける単一目的用のシステムにデータを保持していました。同様に、事前定義済み BI レポートといった単一の方法でデータを分析してきました。データベース間でデータを移行する、または機械学習 (ML、machine learning) や即席の SQL クエリ実行といったさまざまなアプローチでの使用に向けてデータを移行する際には、分析に先んじて “抽出、変換、ロード” (ETL、extract, transform, load) 処理を行う必要がありました。こうした従来の手法は、うまくいったとしても非効率的で遅延がつきものでした。そして最悪の場合には、セキュリティが複雑化します。 対照的に、クラウドベースのデータレイクを利用すると、より柔軟な分析に構造化データおよび非構造化データを使用できるようになります。IT スタッフは、規模を問わずデータを前もって集計、整理、準備、保護できます。そして、アナリストおよびデータサイエンティストは、適切な使用ポリシーに準拠しながら、準備されたデータにお好みの分析ツールでアクセスできます。 データレイクを使用すると、複数の分析手法を組み合わせて、従来のデータストレージおよび分析では不可能だった価値あるインサイトの取得を実現できます。ある小売シナリオでは、ML を用いた手法によって、詳細な顧客プロフィールが検出されたほか、ウェブブラウジング操作、購入履歴、サポート記録、さらにはソーシャルメディアから収集された個人特定に繋がらないデータに基づくコホートが検出されました。これは、リアルタイムの、ストリーミングされる、インタラクティブな顧客データにデプロイされた ML モデルの実例です。 こうしたモデルは、買い物かごを分析して瞬時に “次のおすすめ商品” を提示したり、即座に販売促進策を実施したりといったことに成功しました。マーケティングとサポートのスタッフは、顧客の収益性と満足度をリアルタイムに調査し、新しい売上向上策を立案できました。データレイクを使用すると、このような分析手法の組み合わせにより多様なデータストリームを統合して、データサイロからは得られないインサイトを取得できます。 データレイク構築の課題 残念ながら、データレイクの構築、保護、管理の開始は、複雑で時間のかかるプロセスであり、しばしば数か月を要します。 クラウド上でのデータレイク構築にも、時間のかかる多くの手動の手順が必要です。 ストレージのセットアップ。 データの移行、クリーニング、準備、カタログ化。 各サービスのセキュリティポリシーの設定および適用。 ユーザーに対するアクセス権限の手動での付与。 複数のサービスで処理および分析ができるよう、データをデータレイクで集中管理したいとお考えでしょう。しかし、環境の整備と保護には忍耐が必要です。 現在、IT スタッフおよびアーキテクトは、データレイクの作成、セキュリティの設定、データリクエストへの応答に、膨大すぎる時間を費やしています。これらの人員が、データリソースのキュレーターとして、またはアナリストとデータサイエンティストのアドバイザーとしてこの時間を使えるようになるでしょう。アナリストおよびデータサイエンティストは、必要なデータへのアクセスを、このセットアップが終わるまで待たなければなりません。 次の図はデータレイクのセットアッププロセスを示しています。 ストレージのセットアップ データレイクには膨大な量のデータが保持されます。何よりもまず、その全データを保持するストレージをセットアップする必要があります。AWS を利用中の場合、Amazon S3 バケットとパーティションを設定します。オンプレミスでデータレイクを構築する場合、ハードウェアを調達して、全データを保存するための大規模ディスクアレイをセットアップします。 データの移行 オンプレミスおよびクラウド上のさまざまなデータソースに接続し、IoT デバイス上のデータを収集します。次に、それらのソースから関連データセットを収集して整理し、データをクロールしてスキーマを抽出し、カタログにメタデータタグを付加します。次のような一連のファイル転送ツールや ETL ツールを使用できます。 AWS Glue AWS Database Migration Service (AWS DMS) Amazon […]

Read More

AWS Glue を使用して Salesforce.com データを抽出し、Amazon Athena で分析する

Salesforce は、広く使用されている人気の高い顧客関係管理 (CRM) プラットフォームです。連絡先情報、取引先、見込み客、販売機会など、見込み客やお客様の情報を 1 か所にまとめて管理できます。Salesforce に保存されている見込み客情報を、データレイク内の他の構造化データおよび非構造化データと組み合わせることで、多くの有用な情報を引き出すことができます。 この記事では、AWS Glue を使用して Salesforce.com アカウントオブジェクトからデータを抽出し、それを Amazon S3 に保存する方法を説明します。次に、Amazon Athena を使用して、Salesforce.com のアカウントオブジェクトデータと別の注文管理システムの注文データを結合してレポートを生成します。 データを準備する 無料の Salesforce.com アカウントにサインアップすると、多数の Salesforce.com オブジェクトが入った少数のサンプルレコードが付いてきます。AWS Glue コードの SOQL クエリを変更することで、組織の開発用 Salesforce.com アカウントを使用して、同時に複数のオブジェクトからデータを取得できます。これらのオブジェクトからデータを抽出する方法を示すため、Account オブジェクトのみを使用してクエリを単純なものにします。 Amazon Athena を使用して Salesforce.com データを別のシステムのデータと結合する方法を示すために、注文管理システムから出される注文を示すサンプルデータファイルを作成します。 AWS Glue ジョブを設定する Apache Spark と Salesforce.com を接続するため、オープンソースの springml ライブラリを使用します。このライブラリには、Apache Spark フレームワークを使用して Salesforce.com オブジェクトの読み取り、書き込み、および更新を可能にする便利な機能が多数付属しています。 springml GitHub リポジトリから JAR ファイルをコンパイルするか、Maven […]

Read More

AWS DMS と AWS Glue を使用して進行中のデータレイクの変更を読み込む

Amazon S3 にデータレイクを構築することは、組織に無数のメリットをもたらします。多様なデータソースへのアクセスし、ユニークな関係の決定、カスタマイズされたカスタマーエクスペリエンスを提供するための AI / ML モデルの構築、消費のための新しいデータセットのキュレーションの加速などを可能にします。ただし、オンプレミスであれ AWS であれ、運用データストアから継続的に変化する更新をキャプチャしてデータレイクに読み込むと、時間がかかり管理が困難になる可能性があります。 この投稿では、Oracle、SQL Server、PostgreSQL、MySQL などの定評があるデータベースソースから進行中の変更をデータレイクに読み込むソリューションをデプロイする方法を示します。このソリューションは、新規および変更されたデータを Amazon S3 にストリーミングします。また、適切なデータレイクオブジェクトを作成および更新し、設定したスケジュールに基づいてソースに似たデータのビューを提供します。その後、AWS Glue Data Catalog は、分析サービスが使用するために、新しく更新され重複除外されたデータを公開します。 ソリューションの概要 このソリューションを 2 つの AWS CloudFormation スタックに分割します。この投稿で参照する AWS CloudFormation テンプレートは、パブリックの S3 バケットからダウンロードすることもできますし、後で紹介するリンクを使用して起動することもできます。同様に、この投稿の後半で参照されている AWS Glue ジョブもダウンロードできます。 最初のスタックには、再利用可能なコンポーネントが含まれています。一度だけそれをデプロイする必要があります。以下の AWS リソースを起動します。 AWS Glue ジョブ: 未処理の S3 ファイルから重複排除され最適化された parquet ファイルへの読み込みプロセスのワークフローを管理します。 Amazon DynamoDB テーブル: それぞれのデータレイクテーブルのデータ読み込み状態を保持します。 IAM ロール: これらのサービスを実行して、S3 にアクセスします。このロールには、昇格された権限を持つポリシーが含まれています。これらのサービスにだけこのロールを割り当て、IAM ユーザーまたはグループには割り当てないでください。 AWS […]

Read More

Amazon QuickSight ML insight を使用して詐欺電話を検出する

 どの業界でも詐欺が経済に及ぼす影響は非常に大きいです。Financial Times の記事、電気通信業界の詐欺費用は年間 170 億 USD (有料サブスクリプションが必要) によると、電気通信業界は詐欺によって毎年 170 億 USD の損失を被っています。 詐欺師は常に新しいテクノロジーを探し、新しい技術を考案しています。これにより詐欺パターンが変わるため、検知が難しくなります。企業は通常、ルールベースの詐欺検知システムで対応しています。しかし、詐欺師が現在の技術やツールが特定されていることに気づくと、すぐにそれを回避する方法を見つけてしまいます。また、ルールベースの検知システムは、大量のデータを使用するときに苦労し、処理速度が低下します。これによって詐欺を発見し、迅速に行動することが難しくなります。その結果、収入に対して損失を被ることになります。 概要 異常検知を実装し、詐欺に対応するために使用する AWS サービスには色んなものがありますが、次の 3 つに焦点を当てたいと思います。 Amazon Kinesis Data Analytics Amazon SageMaker Amazon QuickSight ML Insight 詐欺行為を検知しようとすると、高レベルの課題が 2 つ発生します。 スケール – 分析するデータの量。たとえば、各通話は呼詳細レコード (CDR) イベントを生成します。これらの CDR には、発信電話番号および着信電話番号、通話時間など、さまざまな情報が含まれています。これらの CDR イベントに 1 日にかけられる通話回数分の電話を掛けた、オペレーターが管理しなければならない規模に関するアイデアを得ることができます。 機械学習の知識とスキル – 機械学習でビジネス上の問題を解決するのに役立つ適切なスキルセットです。これらのスキルを磨いたり、十分な専門知識を持った有資格のデータサイエンティストを雇ったりするのは簡単ではありません。 Amazon QuickSight ML Insight の紹介 Amazon QuickSightは、リッチでインタラクティブなダッシュボードにより組織内のすべての人がデータからビジネスに役立つインサイトを簡単に手に入れることができる高速クラウドベースの BI […]

Read More