Amazon Web Services ブログ

Category: Analytics

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

Amazon Elasticsearch Service でのアラート設定

顧客はログ分析に Amazon Elasticsearch Service をよく使用します。Amazon ES では、インフラストラクチャからログを収集し、各ログ行を JSON ドキュメントに変換して、ドキュメントを一括 API に送信することができます。 変換されたログ行には多数のフィールドがあり、それぞれに値が含まれています。たとえば、Apache ウェブのログ行には、特に送信元 IP アドレスフィールド、リクエスト URL フィールド、およびステータスコードフィールドが含まれます。多くのユーザーは、Kibana を使用してダッシュボードを構築し、インフラストラクチャを視覚的にモニタリングします。それらのフィールドのデータから明らかであるように、アプリケーションの使用状況、バグ、またはセキュリティ問題に直面しています。たとえば、HTTP 5xx ステータスコードの数をグラフ化してから、変化を監視して対応できます。5xx コードが急増した場合は、おそらくサーバーに問題があります。しかし、このシステムでは Kibana を手動でモニタリングしなければなりません。 4 月 8 日、Amazon ES はイベントのモニタリングとアラートのサポートを開始しました。この機能を使用するには、設定した特定の条件であるトリガーを持つモニタ (スケジュールされたジョブ) を操作して、モニタにアラートを送信するタイミングを指示します。アラートは、トリガー条件が発生したことを通知します。トリガーを引き起こすと、モニタが動作を開始し、送信先にメッセージを送ります。 この記事では、シミュレートされた IoT Device Farm を使用してデータを生成し、Amazon ES に送信します。 シミュレーターの概要 このシミュレーションは、センサーとデバイスといういくつかの重要部分で構成されています。 センサー シミュレーターのコアクラスはセンサーです。デバイスには、さまざまなパターンの浮動小数点値をシミュレートするセンサーがあります。呼び出したとき、各センサーのレポートメソッドはセンサーの値を更新して返します。センサーにはいくつかのサブクラスがあります。 SineSensor: 現在のタイムスタンプに基づいて正弦波を生成します。 ConstSensor: 定数値を生成します。このクラスには、特定の値を中心にして変動するランダムな「ファズ」係数が含まれています。 DriftingSensor: 開始値で連続的なランダムドリフトを可能にします。 MonotonicSensor: ランダムファズで、一定のデルタで値を増やします。 この記事では、MonotonicSensor を使用してその値を増やし続けて、設定したアラートを強制的に違反しました。 汎用一意識別子 (UUID) と追跡するメトリックのラベルからセンサーを識別できます。センサークラスのレポート機能は、タイムスタンプ、センサーの […]

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

Amazon Kinesis Data Analytics が東京リージョンで利用可能になりました

2019年5月、Amazon Kinesis Data Analytics が東京リージョンで利用できるようになりました。 これまで、東京リージョンにあるデータソース(Amazon Kinesis Data Streams または Amazon Kinesis Data Firehose)を Kinesis Data Analytics に接続するためには、リージョンを跨いで接続する必要がありました。Kinesis Data Analytics が東京リージョンで利用可能となったことにより、日本国内にあるデータソースと接続しやすくなり、ストリームデータ分析の環境をよりシンプルに構築できるようになりました。 Kinesis Data Analytics では、ストリーミングデータをリアルタイムに分析できるため、ビジネス上の素早いアクションが可能になります。今日では、Web・モバイルアプリケーションからのクリックストリームデータ、サーバーのアプリケーションログなど様々なデータソースから継続的にデータが生成されています。Kinesis Data Analytics は、新しいプログラミング言語や処理フレームワークを習得することなく、標準 SQL や Java (Apache Flink) でストリーミングデータをリアルタイムに分析することができます。また、フルマネージドサービスであり、受信データのボリュームとスループットレートに応じて自動的にスケールします。クエリで使用されるリソースのみが課金の対象となり、最低料金や初期費用はありません。

Read More

Amazon S3 インベントリ、Amazon EMR、および Amazon Athena を使用して既存のオブジェクトのクロスリージョンレプリケーションをトリガーする

Amazon Simple Storage Service (Amazon S3) では、クロスリージョンレプリケーション (CRR) を使用して、異なる AWS リージョン内のバケット間でオブジェクトを自動的かつ非同期にコピーできます。CRR はバケットレベルの設定であり、データのコピーを異なるリージョンに保存することで、コンプライアンス要件を満たし、レイテンシーを最小限に抑えるのに役立ちます。CRR は、プレフィックスとタグによって制御されるソースバケット内のすべてのオブジェクト、またはオプションでサブセットを複製します。 CRR を有効にする前に存在していたオブジェクト (既存のオブジェクト) は複製されません。同様に、レプリケーションに使用される IAM ロールまたはバケットポリシー (バケットが異なる AWS アカウントにある場合) のいずれかで権限が設定されていないと、オブジェクトの複製に失敗することがあります (失敗したオブジェクト)。 お客様との作業では、前述の理由で多数のオブジェクトが複製されないという状況を経験しました。この記事では、既存のオブジェクトと失敗したオブジェクトに対してクロスリージョンレプリケーションをトリガーする方法を説明します。 方法論 高いレベルで、既存のオブジェクトと失敗したオブジェクトに対してコピーインプレース操作を実行する戦略です。この操作では、Amazon S3 API を使用して、タグ、アクセスコントロールリスト (ACL)、メタデータ、および暗号化キーを保持しながら、オブジェクトを自分自身の上にコピーします。操作は、オブジェクトの Replication_Status フラグもリセットします。これにより、クロスリージョンレプリケーションがトリガーされ、次にオブジェクトが宛先バケットにコピーされます。 これを達成するために、以下を使用します。 その場でコピーするオブジェクトを識別する Amazon S3 インベントリ。これらのオブジェクトはレプリケーションステータスがないか、または FAILED ステータスを持っています。 S3 インベントリファイルをテーブルとして公開するための Amazon Athena と AWS Glue。 AWS Glue テーブルをクエリしてインプレースコピー操作を実行する Apache Spark ジョブを実行するための Amazon EMR。 […]

Read More

【開催報告】AWS Data Lake ハンズオンセミナー 2019 初夏

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

Read More

Elasticsearch と Kibana を使って Amazon Connect のデータをリアルタイムに活用する

このブログポストでは、Amazon Elasticsearch Service (Amazon ES) と Kibana を使って、どのように Amazon Connect コンタクトセンターでリアルタイムなデータ分析を行うかを紹介します。問い合わせ対応時間やサービスレベル、問い合わせの効率具合、エージェントのパフォーマンス、顧客満足度など、様々なサービス・メトリクスを改善するためにコンタクトセンターのパフォーマンスをモニタリングできます。 加えて、Amazon ES を使って問い合わせ追跡レコード (CTR) 、エージェントのイベント・ストリーム、Amazon CloudWatch で取得できる問い合わせフローログを処理し、Kibana を使ってリアルタイムに近い形で可視化するソリューションも紹介します。Elasticsearch はオープンソースの、分散システムの検索と分析のエンジンで、ログ分析や全文検索に利用されています。Kibana はデータ集約と可視化のツールです。Amazon ES と Kibana を用いて、リアルタイムにデータを検索、可視化、分析、洞察することができます。 Amazon Connect は顧客とのやり取りで発生したイベントの詳細をリアルタイムに問い合わせフローログとして提供します。問い合わせフローとは顧客が問い合わせを行ったときの顧客体験を定義したもので、再生するプロンプトや顧客からの入力、問い合わせキューの転送などを定義します。 さらに、Amazon Connect は 分析用にデータをエクスポートするために CTR を Amazon Kinesis Data Firehose に、エージェントのイベントを Amazon Kinesis Data Streams にストリーミングできます。CTR は Amazon Connect インスタンスで発生するイベントや、属性、キュー、エージェントのやり取りをキャプチャーしたものです。エージェントのイベントは、Amazon Connect インスタンスにて起こる、ログイン、ログアウト、ステータスの変更といったエージェントのアクティビティを記録したものです。 ソリューション概要 以下の図は Amazon Connect からの問い合わせフローログや CTR、エージェントのイベントを処理し、Amazon […]

Read More

URL パスを分析して Amazon Elasticsearch Service の個々の要素を検索する

AWS クラウドにデータレイクを構築するのであれば、おそらく基礎となるデータのメタデータやカタログを検索する機能が必要になります。S3 キー、S3 およびオブジェクトメタデータの保存と検索には Amazon Elasticsearch Service (Amazon ES) をお勧めします。少なくとも、S3 キーにはオブジェクト名が含まれていますが、さらに検索したい追加の識別パス要素も含まれているでしょう。この記事では、キーパスを検索できるように Amazon ES を設定する方法について説明します。その過程で、テキストフィールドのためのカスタムアナライザーを作る方法も取り上げます。 分析 Amazon Elasticsearch Service (Amazon ES) を使用すると、Elasticsearch を使用してアプリケーションのデータを簡単に検索することができます。この記事は、Elasticsearch の機能に関するものです。Amazon ES は、データ、マッピング、検索リクエストなどが通過する管理レイヤーです。Amazon ES と Elasticsearch の関係の詳細については、当社のドキュメントを参照してください。 ドキュメントは、マッピングと一緒に Amazon ES に送信されます。このマッピングによって、Elasticsearch がフィールド内の値をどのように解析するかが決まり、クエリのターゲットとなる用語が作成されます。Amazon ES にクエリを送信すると、Elasticsearch はクエリ内の用語とドキュメントのフィールド内の用語を照合して、そのドキュメントがクエリと一致するかどうかを判断します。Elasticsearch は、こうした一致のランク付けされたセットをスコア付けし、クエリ結果として返します。 この記事では、テキストタイプの値に焦点を当てます。Elasticsearch 6.x のマッピングは、テキストとキーワードの 2 種類のテキストフィールドをサポートしています。キーワードフィールドは最低限の処理が行われ、完全一致の基礎として機能します。テキストフィールドは分析され、用語と呼ばれる個々の単語に分割されます。(Elasticsearch の一部の以前のバージョンでは、テキストタイプに異なる名前が使用されていたことに注意してください。) Elasticsearch はテキストフィールドを分析し、いくつかの処理段階を経てテキストを渡します。これは、文字のストリームを文字フィルターに渡し、次にトークナイザを適用して用語のストリームを発行し、最後に生成されたトークンにトークンフィルターを適用します。 下記のように、こうした各段階の動作をカスタマイズすることができます。 Elasticsearch のアナライザー Elasticsearch には、以下のような多数のアナライザーが組み込まれています。 Whitespace – ソース文字列を空白で分割し、文字の追加やトークンのフィルタリングを行わずに用語を作成します。 Simple […]

Read More

Amazon EMR の伸縮性と回復力を高めるための Spark の機能強化

お客様は Amazon EMR の伸縮性を利用して、ワークフローが完了したとき、またはより軽いジョブを実行するときにクラスターをスケールしてコストを節約しています。これは、低コストの Amazon EC2 スポットインスタンスでクラスターを起動する場合も同様です。 Amazon EMR の Automatic Scaling 機能により、お客様はクラスターの使用状況やその他のジョブ関連のメトリックスに基づいて、クラスターを動的にスケーリングできます。これらの機能は、リソースを効率的に使用するのに役立ちますが、実行中のジョブの途中で EC2 インスタンスがシャットダウンすることもあります。これにより、計算とデータが失われる可能性があり、それがジョブの安定性に影響を与えたり、再計算による重複作業を招いたりする可能性があります。 実行中のジョブに影響を与えずにノードを適切にシャットダウンするために、Amazon EMR は Apache Hadoop の廃止メカニズムを使用しています。このメカニズムは Amazon EMR チームが開発し、コミュニティに還元したものです。これはほとんどの Hadoop ワークロードではうまく機能しますが、Apache Spark ではそれほどうまくいきません。Spark は現在、ノードの損失に対処する際、さまざまな問題点に直面しています。これにより、失われたタスクやデータをリカバリおよび再計算しようとしてジョブが停滞したり、場合によってはジョブがクラッシュしたりすることもあります。Spark の未解決問題のいくつかについての詳細は、以下のリンクを参照してください。 フェッチのエラーに関連した問題 シャットダウン中のノードを追跡し、それらのノードに対するタスクのスケジューリングを回避する これらの問題のいくつかを回避し、お客様が Spark を使用して Amazon EMR の伸縮性機能を最大限に活用できるようにするために、Amazon EMR では、オープンソースの Spark をカスタマイズしてノードの損失に対する回復力を高めることができます。再計算は最小限に抑えられ、ジョブはノードのエラーおよび EC2 インスタンスの終了からより迅速にリカバリできます。これらの改善点は、Amazon EMR リリースバージョン 5.9.0 以降で反映されています。 このブログ記事では、問題に対処するためにオープンソースの Spark でノードの損失に対処する方法と、Amazon EMR の改善にまつわる問題点の概要について説明します。

Read More