Amazon Web Services ブログ

Category: AWS Big Data

【開催報告】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

EMR Notebooks: Jupyter ノートブックをベースとしたマネージド型分析環境

ノートブックは、インタラクティブにビッグデータアプリケーションを開発するための標準ツールとなりつつありますが、その理由は簡単に想像がつきます。柔軟性のあるアーキテクチャは、複数言語でのデータの実験、インタラクティブなコードのテスト、そして大規模データセットの可視化を可能にしてくれます。科学者と開発者がノートブックツールに簡単にアクセスできるように、AWS は Amazon EMR ノートブックのサービスを開始しました。これは、人気のあるオープンソースアプリケーション、Jupyter ノートブックをベースとしたマネージド型ノートブック環境です。EMR Notebooks は Spark Magic カーネルをサポートし、このカーネルは PySpark、Spark SQL、Spark R、および Scala といった言語を使用して、EMR クラスターにジョブをリモートで送信することができます。Spark Magic カーネルは、クラスターで実行される Spark の REST サーバーである Apache Livy 経由で Spark コードを送信します。 EMR Notebooks は、Apache Spark でのアプリケーションの実験と構築を容易にするように設計されています。このブログ記事では、まず EMR Notebooks が提供するいくつかのメリットについてお話しします。その後、異なる EMR クラスターへのノートブックのアタッチとデタッチ、ノートブック内からの Spark アクティビティの監視、ユーザーアクセス許可を制御するためのタグの使用、およびノートブックユーザーとそのアクションを追跡するためのユーザー偽装のセットアップなどの機能をいくつかご紹介します。EMR Notebooks の作成と使用について学ぶには、「Amazon EMR ノートブックの使用」にアクセスする、または AWS オンラインテックトークのオンラインセミナーの手順に従うことができます。 EMR Notebooks のメリット EMR Notebooks の便利な機能のひとつは、基礎となるクラスターインフラストラクチャからのノートブック環境の分離です。この分離は、新しいクラスターを起動するたびにノートブックをデプロイまたは設定する作業に煩わされることなく、一時的なクラスターに対してノートブックコードを簡単に実行できるようにしてくれます。SSH アクセスをセットアップするための時間を費やしたり、ポートフォワーディングのためにブラウザを設定したりすることなく、EMR の AWS […]

Read More

Deequ で大規模なデータ品質をテスト

一般的に、コード用のユニットテストを書くと思いますが、お使いのデータもテストしているのでしょうか? 不正確または不正なデータは、本番システムに大きな影響を与える可能性があります。データ品質問題の例は次のとおりです。 値がない場合は、本番システムで null 以外の値を必要とするエラー (NullPointerException) が発生する可能性があります。 データ分布が変化すると、機械学習モデルで予期しない出力につながることがあります。 データの集計を誤ると、ビジネスでの判断を下す際に誤った意思決定につながる可能性があります。 このブログ記事では、Amazon で開発し、使用されているオープンソースツールである Deequ を紹介したいと思います。Deequ では、データセットのデータ品質メトリクスを計算したり、データ品質の制約を定義および確認したり、データ分布の変化について通知を受け取ったりすることができます。確認や検証のアルゴリズムを直接実装する代わりに、データの外観を記述することに集中できます。Deequ は確認を提案することでお客様をサポートします。Deequ は Apache Spark に実装されています。通常は分散型ファイルシステムまたはデータウェアハウスに存在する大規模なデータセット (数十億行の規模と考えられる) に合わせて拡張するように設計されています。 Amazon での Deequ Deequ は、多くの大規模な本番データセットの品質を検証するために Amazon で内部的に使用されています。データセットの製作者は、データ品質の制約を追加および編集できます。このシステムは、定期的に (データセットの新しいバージョンごとに) データ品質メトリクスを計算し、データセットの製作者によって定義された制約を検証し、成功した場合にはデータセットをコンシューマーに公開します。エラーが発生した場合、データセットの公開は中止され、製作者はアクションをとるように通知を受けます。データの品質問題はコンシューマーのデータパイプラインに伝播しないため、問題が発生したときの影響範囲が減少します。 Deequ の概要 Deequ を使用するために、その主要コンポーネントを見てみましょう (図 1 も参照)。 メトリクス計算 — Deequ はデータ品質メトリクス、つまり完全性、最大値、相関関係などの統計情報を計算します。Deequ は、Spark を使用して Amazon S3 などのソースから読み取り、最適化された一連の集計クエリを通じてメトリクスを計算します。データに基づいて計算された未加工メトリクスに直接アクセスできます。 制約の検証 — ユーザーは、一連のデータ品質において検証する制約を定義することに集中できます。Deequ は、データに対して計算される、必要な一連のメトリクスを導き出します。Deequ は、制約の検証結果を含むデータ品質レポートを生成します。 制約の提案 — 独自のカスタムデータ品質の制約を定義するか、有用な制約を推測するためにデータをプロファイルする自動制約提案方法を使用することを選択できます。 図 […]

Read More

新しいクエリエディタを使用して Amazon Redshift クラスターをクエリする

データウェアハウスは、データから実用的な洞察を分析および抽出するための重要なコンポーネントです。Amazon Redshift は、高速でスケーラブルなデータウェアハウスであり、データウェアハウスとデータレイク全体ですべてのデータを分析するのに費用対効果が高くなります。 Amazon Redshift コンソールは最近、クエリエディタを開始しました。クエリエディタは、AWS マネジメントコンソールから直接 Amazon Redshift クラスターで SQL クエリを実行するためのブラウザ内インターフェイスです。Amazon Redshift クラスターでホストされているデータベースでクエリを実行するには、クエリエディタを使用するのが最も効率的な方法です。 クラスターを作成したら、すぐにクエリエディタを使用して Amazon Redshift コンソールでクエリを実行できます。クエリエディタは外部の JDBC/ODBC クライアントを使用してデータベースに接続するのに代わる優れた方法です。 この記事では、クラスターにデータをロードし、コンソールからクラスターのパフォーマンスを直接モニターするための SQL クエリを実行する方法を説明します。 SQL IDE やツールの代わりにクエリエディタを使用する クエリエディタは、Amazon Redshift クラスターで SQL クエリを実行するためのブラウザ内インターフェイスを提供します。計算ノードで実行されるクエリの場合は、クエリの横にクエリ結果とクエリ実行プランを表示できます。 クエリを可視化し、便利なユーザーインターフェイスを実現する機能により、データベース管理者としてもデータベース開発者としても、さまざまなタスクを実行できます。視覚的なクエリエディタを使用すると、次のことができます。 複雑なクエリを作成すること クエリを編集して実行すること データを作成して編集すること 結果を表示してエクスポートすること クエリに EXPLAIN プランを作成すること クエリエディタを使用すると、複数の SQL タブを同時に開くこともできます。色付きの構文、クエリのオートコンプリート、およびシングルステップのクエリフォーマットはすべて、追加のボーナスです。 データベース管理者は通常、よく使用する SQL ステートメントのリポジトリを定期的に管理しています。これをメモ帳のどこかに書き記せば、保存したクエリ機能を存分に活かせるでしょう。この機能を使用すると、よく実行する SQL ステートメントを一度に保存して再利用できます。これにより、以前に実行した SQL ステートメントを確認、再実行、および変更することが効率的になります。クエリエディタにはエクスポーターもあり、クエリ結果を CSV 形式にエクスポートできます。 クエリエディタを使用すると、クラスター上にスキーマやテーブルを作成する、テーブルにデータをロードするなどの一般的なタスクを実行できます。これらの一般的なタスクは、コンソール上で直接実行するいくつかの単純な SQL ステートメントを使用して可能になりました。コンソールから日々の管理タスクを行うこともできます。これらのタスクには、クラスター上で長時間実行されているクエリを見つけること、クラスター上で長時間実行されている更新で潜在的なデッドロックをチェックすること、およびクラスターで使用可能な容量を確認することなどがあります。 クエリエディタは […]

Read More

Amazon S3 オブジェクトの Amazon Kinesis Data Firehose カスタムプレフィックス

2019 年 2 月、アマゾン ウェブ サービス (AWS) は、Amazon Kinesis Data Firehose に Custom Prefixes for Amazon S3 Objects と呼ばれる新機能を発表しました。これにより、顧客はデータレコードが配信される Amazon S3 プレフィックスのカスタム表現を指定できます。 以前は、Kinesis Data Firehose ではリテラルプレフィックスのみを指定できました。次に、このプレフィックスを静的な日付形式のプレフィックスと組み合わせて、固定形式の出力フォルダを作成しました。 お客様は柔軟性を求めていたので、AWS は耳を傾け、実現したのです。 Kinesis Data Firehose は、アプリケーションや IoT デバイスなどのストリーミングソースからイベントデータを消費するために最も一般的に使用されています。  データは通常データレイクに格納されるため、処理して最終的にクエリを実行できます。  Amazon S3 にデータを保存するときは、関連データを分割またはグループ化し、同じフォルダにまとめて保存することをお勧めします。  これにより、パーティション化されたデータをフィルタリングし、各クエリでスキャンされるデータ量を制御することができるため、パフォーマンスが向上しコストが削減されます。 データをグループ化する一般的な方法は日付順です。  Kinesis Data Firehose はデータを自動的にグループ化し、日付に基づいて Amazon S3 の適切なフォルダに保存します。  ただし、Amazon S3 内のフォルダーの命名は、Apache Hive の命名規則と互換性がありません。これにより、AWS Glue クローラーを使用してデータをカタログ化し、ビッグデータツールを使用して分析することが難しくなります。 この記事では、Kinesis Data Firehose が […]

Read More

Apache Flink と Amazon Kinesis Data Analytics for Java アプリケーションを使用して、ストリーミングアプリケーションを構築、実行する

ストリーム処理によってリアルタイムデータの収集、処理、分析が容易となるため、洞察が継続して生まれ、新たに生じる状況にも素早く対応できるようになります。この機能は得られた洞察の価値が、時間の経過とともに減少する場合に役立ちます。つまり検出した状況に迅速に対応できればできるほど、この反応がより価値のあるものとなります。たとえば不正なクレジットカードのトランザクションが発生し、それを分析してブロックするようなストリーミングアプリケーションを考えてみましょう。そのアプリケーションを従来のバッチ指向のもの、つまりその日の営業を終了する際に不正な取引を識別して、翌朝にはレポートを生成するアプローチと比較してみてください。 洞察の価値が時間の経過とともに下がっていくのは、よくあることです。そういう訳でストリーム処理をすると、分析アプリケーションの価値が大幅に向上するのです。ただしデータを継続的に受信し処理するストリーミングアプリケーションを構築して運用するのは、従来のバッチ指向の分析アプリケーションを運用するよりもはるかに困難です。 この投稿ではこうした課題に対処するため、Apache Flink と Amazon Kinesis Data Analytics for Java アプリケーションを使用する方法について解説します。自己管理環境と比較して運用上のオーバーヘッドを大幅に削減できるマネージドサービスに基づいて、信頼性が高く、スケーラブルで、可用性の高いストリーミングアーキテクチャを構築する方法を探ります。特に Kinesis Data Analytics for Java アプリケーションを使用して、Flink アプリケーションを準備および実行する方法に焦点を当てています。このため、ソースコードと AWS CloudFormation テンプレートを含む例に言及したシナリオを使用します。この例に沿ってご自身の AWS アカウントを使用するか、特定の要件に従ってコードを修正してください。

Read More

Amazon EMR で Apache Spark アプリケーションのメモリをうまく管理するためのベストプラクティス

ビッグデータの世界における一般的なユースケースは、さまざまなデータソースからの大量のデータにおける抽出/変換 (ET) とデータ分析の実行です。多くの場合、この後でデータを分析してインサイトを取得します。このような大量のデータを処理するための最も人気のあるクラウドベースソリューションのひとつが Amazon EMR です。 Amazon EMR は、AWS での Apache Hadoop および Apache Spark などのビッグデータフレームワークの実行をシンプル化するマネージドクラスタープラットフォームです。Amazon EMR は、組織が複数のインスタンスを持つクラスターをほんの数分でスピンアップすることを可能にします。また、並列処理を使ってさまざまなデータエンジニアリングとビジネスインテリジェンスのワークロードを処理できるようにもしてくれます。こうすることで、クラスターの確立とスケーリングに関わるデータ処理の時間、工数、およびコストを大幅に削減することができます。 Apache Spark は、オープンソースで高速な汎用目的のクラスターコンピューティングソフトウェアで、ビッグデータの分散処理で広く利用されています。Apache Spark は、タスクの I/O と実行時間を削減するためにノード全体のメモリで並行コンピューティングを実行することから、クラスターメモリ (RAM) に大きく依存しています。 一般に、Amazon EMR で Spark アプリケーションを実行するときは、以下の手順を実行します。 Spark アプリケーションパッケージを Amazon S3 にアップロードする。 設定済みの Apache Spark で Amazon EMR クラスターを設定し、起動する。 Amazon S3 からクラスターにアプリケーションパッケージをインストールし、アプリケーションを実行する。 アプリケーションが完了したら、クラスターを終了する。 Spark アプリケーションを成功させるには、データと処理の要件に基づいて Spark アプリケーションを適切に設定することが大切です。デフォルト設定では Spark が利用できるクラスターのリソースのすべてを使用しない場合があり、物理メモリまたは仮想メモリの問題、あるいはその両方が発生する可能性があります。Stackoverflow.com では、この特定のトピックに関連する何千もの質問が提起されています。 […]

Read More

Okta を ID プロバイダーとして Amazon Redshift へのアクセスとフェデレーションする

データベースのユーザーとアクセスを管理することは、気が遠くなるほど大変でエラーが発生しやすい作業です。これまで、データベース管理者は、ユーザーがどのグループに属しているのか、およびユーザー/グループがどのオブジェクトの使用を許可されているのかを判断する必要がありました。これらのリストはデータベース内で管理されており、社内ディレクトリから簡単に外れる可能性があります。 フェデレーションを使用すると、企業のアイデンティティプロバイダー (IdP) 内のユーザーおよびグループを管理し、それらをログイン時に Amazon Redshift に渡すことができます。前回の記事、「IAM と Amazon Redshift を使用して、データベースユーザー認証を簡単にフェデレーションする」で、Active Directory Federation Service (AD FS) を ID プロバイダーとして使用するフェデレーションワークフローの内部について説明しました。 この記事では、ID プロバイダーとして Okta に焦点を当てます。Okta.com のトライアルアカウントを設定し、組織のディレクトリ内にユーザーとグループを構築し、Amazon Redshift へのシングルサインオン (SSO) を有効にする方法を段階的に説明します。データウェアハウス内でグループレベルのアクセス制御も維持しながら、これらすべてを実行できます。 この記事の手順は、次のセクションで構成されています。 ID プロバイダー (Okta) の設定 – Okta をセットアップします。これには、ユーザーを論理グループにまとめる作業が含まれます。 AWS の設定 – ID プロバイダーと AWS 間の信頼関係を確立するロールと、Okta が Amazon Redshift へのアクセスに使用するロールを設定します。 ID プロバイダー (Okta) の詳細設定 – 作成したロールを入力して Okta の設定を完成させます。また、どのグループを […]

Read More

Amazon Redshift マネジメントコンソールへのきめ細かいアクセスを付与する

完全マネージド型サービスとして、Amazon Redshift は設定と使用が簡単になるように設計されています。このブログ記事では、Amazon Redshift マネジメントコンソールを使って、オペレーショングループのユーザーに特定のアクションだけを実行するアクセス権を付与する方法を紹介します。カスタム IAM ポリシーを実装する場合は、こうしたユーザーが実行中のクエリを監視および停止できるように設定できます。同時に、こうしたユーザーが Amazon Redshift クラスターの変更、再起動、削除などの他のより特権的な操作を実行できないようにすることができます。 Amazon Redshift アクセスコントロールの概要 2013 年 2 月のリリース以来、Amazon Redshift はすぐに世界中で何千社もの顧客を持つ人気のあるクラウドベースのデータウェアハウジングプラットフォームになりました。 Amazon Redshift にアクセスするには、AWS がリクエストの認証に使用できる認証情報が必要です。こうした認証情報には、Amazon クラスターやスナップショットなどの Amazon Redshift リソースにアクセスするためのアクセス許可が必要です。こうした認証情報の詳細については、Amazon Redshift のドキュメントのAmazon Redshift の認証およびアクセスコントロールを参照してください。 すべての AWS リソースは AWS アカウントによって所有され、リソースを作成またはアクセスするためのアクセス許可は AWS Identity and Access Management (IAM) ポリシーによって管理されます。AWS アカウント管理者は、IAM の ID (ユーザー、グループ、ロール) にアクセス許可ポリシーをアタッチすることができます。特に、AWS アカウント管理者は、特定のユーザーに IAM アクセス許可ポリシーをアタッチすることができます。そのようなポリシーは、そのユーザーに、スナップショットやイベントサブスクリプションなどの Amazon Redshift リソースを管理するためのアクセス許可を付与します。

Read More

Amazon QuickSight が ML Insights の一般提供を開始

re:Invent 2018 で、そのまま使える機械学習と自然言語機能をセットにしたML Insightsのプレビューを発表しました。これは、Amazon QuickSight ユーザーにビジュアライゼーションをを超えるビジネスインサイトを提供するものです。そして本日、ML インサイトの一般提供を開始しました。 お客様が生成するデータの量は日々増え続けるにつれ、ビジネスのインサイトのためにデータを活用することはますます大変になっています。こうした背景から機械学習がお役に立てるようになりました。Amazon は機械学習を使用して、ビジネス分析でのさまざまな側面を自動化および拡張してきた草分け的企業です。 新しい ML Insights機能により、Amazon QuickSight は、隠れたデータの傾向を発見し、ビジネスを左右する重要な要因を見つけ、将来の結果を予測したり、データを要約して理解しやすい自然言語で表現したりできます。また、手作業による分析と調査の時間の節約に役立ちます。すぐに使える 機械学習と Amazon QuickSight の豊富な分析機能を統合する包括的な BI ソリューションを構築することで、組織の全員にインタラクティブなダッシュボードを配布できます。ML インサイトを使用すると、機械学習が容易となり、技術や ML スキルセットに関わらず、誰でも簡単に数週間ではなくわずか数分でデータからインサイトを得ることができます。ML によるインサイト機能は次のとおりです。 ML を活用した異常検知は、何十億ものデータポイントを継続的に分析することによって、隠れたインサイトを発見するのに役立ちます。 ポイントアンドクリックで簡単に成長とビジネストレンドを予想するML を活用した予測 ダッシュボードの内容をやさしい言葉で伝えるのに役立つ自動ナラティブ。 ML Insightsの簡単な概要については、こちらのビデオをご覧ください。 ML Insightsをご使用いただくために、このブログ記事では ML を活用した新しい機能について説明します。 お客様のユースケース 過去 3 か月間にわたる ML Insightsのプレビュー期間中、電気通信、エンターテインメント、マーケティング、小売、エネルギー、金融サービス、ヘルスケアなどの幅広い業界のお客様が、ML Insightsを使用して、増え続ける AWS のデータとオンプレミスでのビジネスインサイトを活用してきました。以下では、ML Insightsで行っている素晴らしい例をご紹介します。 エクスペディア・グループは、世界最大級の旅行プラットフォームであり、世界中の旅を簡単にすることを目指しています。 「エクスペディア・グループでは、2 つの重要な戦略的課題があります。顧客中心であること、そしてグローバルをローカルにすることです。だからこそ、Amazon QuickSight などのツールが非常に役立っており、当社のビジネスメトリクスの測定、報告、行動を容易になることで、お客様が行う旅行に関する検索で最適な回答を得るお手伝いができるのです。Amazon QuickSight が提供するそのまま使える ML Insightsは、ビジネスの異常の発生を継続的に監視し、異常値が発生すると関係者に警告し、ビジネスプロジェクトの将来の傾向予測を支援してくれます。このため、これらの機能をゼロから構築する必要がなくなり、チームは他の優先事項に集中することができます。」 エクスペディア・グループでフライトのデータと解析を行うテクノロジーディレクターの […]

Read More