全般

Q: Amazon Kinesis Data Analytics とは何ですか?
Amazon Kinesis Data Analytics は、Apache Flink でストリーミングデータをリアルタイムで変換および分析できる最も簡単な方法です。Apache Flink はオープンソースのフレームワークであり、データストリームを処理するためのエンジンです。Amazon Kinesis Data Analytics を利用すると、Apache Flink アプリケーションを構築し、管理し、AWS のサービスと統合する作業がシンプルになります。

Amazon Kinesis Data Analytics では、ストリーミングアプリケーションを継続的に実行するために必要なものすべてが提供され、受信データのボリュームとスループットレートに応じて自動的にスケールされます。Amazon Kinesis Data Analytics を使用すれば、ストリーミングアプリケーションが使用するリソースに対してのみお支払いいただきます。サーバーを管理することも、最低料金やセットアップ費用がかかることもありません。
 
Q: リアルタイムストリーム処理とは何ですか? なぜそれが必要ですか?
リアルタイムデータソースの爆発的な増加により、企業はこれまでにない速さでデータを取り込んでいます。モバイルやウェブアプリケーションからのログデータであれ、e コマースサイトからの購入データであれ、IoT デバイスからのセンサーデータであれ、リアルタイムでデータを取り込むことにより、顧客、組織、ビジネスが現在何をしているかを知ることができます。
 
Q: Kinesis Data Analytics でできることは何ですか?
Kinesis Data Analytics はさまざまなユースケースで使用し、データを継続的に処理したり、数日や数週間待つことなく数秒または数分で分析情報を得たりすることができます。Kinesis Data Analytics では、ログ分析、クリックストリーム分析、IoT、アドテク、ゲームなどを用途とするエンドツーエンドストリーム処理アプリケーションを簡単に構築できます。一般的な 4 つのユースケースには、ストリーミング ETL (Extract-Transform-Load/抽出、変換、読み込み)、継続的メトリクス生成、応答分析、データ ストリームのインタラクティブなクエリがあります。
 
ストリーミング ETL
ストリーミング ETL アプリケーションでは、データレイクやデータウェアハウスを読み込む前に、未加工データを洗浄、拡充、整理、変換でき、一括 ETL 手順を減らすか無くすことができます。配信前に小さなレコードを大きなファイルにバッファリングしたり、ストリームやテーブルをまたいで高度な連結を実行したりできます。たとえば、 Amazon Managed Streaming for Apache Kafka (Amazon MSK) に保存されている IoT センサーデータを継続的に読み込むアプリケーションを構築し、センサーの種類別にデータを整理し、指定したスキーマでデータを正規化し、それから Amazon S3 にデータを配信するアプリケーションを構築できます。
 
継続的メトリック生成
継続的メトリック生成アプリケーションでは、データの経時的な傾向を監視し、理解できます。アプリケーションでストリーミングデータを集めて重要な情報を引き出したり、報告用データベースや監視サービスとつなぎ目なく統合し、アプリケーションやユーザーにリアルタイムでサービスを提供したりできます。Kinesis Data Analytics では、複数の時間枠にまたがって連続的に時系列分析を生成する SQL または Apache Flink コードを利用できます。たとえば、モバイルゲームのトッププレーヤーを毎分決定して Amazon DynamoDB に送信することで、リアルタイムの順位表を作成できます。あるいは、5 分ごとにウェブサイトの一意の訪問者数を計算し、処理した結果を Amazon Redshift に送信することで、ウェブサイトのトラフィックを追跡することもできます。
 
リアルタイム応答分析
リアルタイム応答分析アプリケーションは、特定のメトリクスが事前定義しきい値に到達したときや、より高度な例では、機械学習アルゴリズムを使用してアプリケーションによって異常が検出されたときに、リアルタイムのアラームまたは通知を送信します。このようなアプリケーションでは、ユーザーがモバイルアプリを断念するのを予測し、劣化したシステムを特定するなど、ビジネスにおける変化にリアルタイムですぐに対応できます。たとえば、アプリケーションで、時系列における顧客向け API の可用性または正常終了率を計算して、その結果を Amazon CloudWatch に送信できます。また、特定の基準を満たすイベントを検出し、それを Amazon Kinesis Data Streams と Amazon Simple Notification Service (SNS) を使用して適切なユーザーに自動的に通知するアプリケーションを作成することもできます。
 
データ ストリームのインタラクティブな分析
インタラクティブな分析により、リアルタイムでストリーミングデータを探索することができます。アドホックなクエリまたはプログラムを使用すると、Amazon MSK または Amazon Kinesis Data Streams からのストリームを検査し、それらのストリーム内のデータがどのように見えるかを可視化することができます。例えば、時間枠の平均を計算するリアルタイムメトリクスがどのように動作するかを表示し、選択した送信先に集計データを送信できます。また、インタラクティブな分析は、ストリーム処理アプリケーションの反復開発にも役立ちます。作成したクエリは、新しいデータが到着すると継続的に更新されます。Amazon Kinesis Data Analytics Studio を使用すると、これらのクエリをデプロイし、自動スケーリングと永続的な状態のバックアップを有効にして継続的に実行することができます。
 
Q: Kinesis Data Analytics 向け Apache Flink アプリケーションはどのように利用を開始できますか?
Amazon Kinesis Data Analytics コンソールにサインインし、新しいストリーム処理アプリケーションを作成します。 AWS CLIAWS SDKs を使用することもできます。アプリケーションを作成したら、お気に入りの統合開発環境に進み、AWS に接続し、選択した言語でオープンソースの Apache Flink ライブラリと AWS SDK をインストールします。Apache Flink はオープンソースのフレームワークであり、データストリームと AWS SDK を処理するためのエンジンです。拡張可能なライブラリには、ウィンドウやアグリゲートなどのあらかじめ構築された 25 以上のストリーム処理演算子および Amazon MSK、Amazon Kinesis Data Streams や Amazon Kinesis Data Firehose などの AWS のサービス統合が含まれています。構築後、コードを Amazon Kinesis Data Analytics にアップロードすると、受信データの量とスループットに合わせて自動的にスケーリングするなど、リアルタイムアプリケーションを継続的に実行するために必要なものすべてをサービスが処理します。
 
Q: Amazon Kinesis Data Analytics Studio の使用を開始するにはどうすればよいですか?
Amazon Kinesis Data Analytics コンソールから開始して、新しい Studio ノートブックを作成できます。ノートブックを起動すると、Apache Zeppelin で開いて、すぐに SQL、Python、Scala でコードを書くことができます。組み込みの統合を使用する Amazon Kinesis Data Streams、Amazon MSK、Amazon S3 のノートブックインターフェイス、およびカスタムコネクタを備えたその他のさまざまなソースを使用して、インタラクティブにアプリケーションを開発できます。Apache Flink が Flink SQL でサポートするすべての演算子と Table API を使用して、データ ストリームのアドホック クエリを実行し、ストリーム処理アプリケーションを開発できます。準備が整うと、数回クリックするだけで、コードを自動スケーリングと永続的な状態で継続的に実行されるストリーム処理アプリケーションに簡単にプロモートできます。
 
Q: Kinesis Data Analytics 向け Apache Beam アプリケーションの開始方法を教えてください。
Apache Beam を使用して Kinesis Data Analytics アプリケーションを作成することは、Apache Flink を使い始めるのと非常によく似ています。上記の質問の指示に従い、デベロッパーガイドの指示に従って、アプリケーションを Apache Beam で実行するために必要なコンポーネントを必ずインストールしてください。Kinesis Data Analytics は、Apache Beam で実行している場合にのみ Java SDK をサポートすることに注意してください。
 
Q: Kinesis Data Analytics for SQL の使用を開始するにはどうすればよいですか?
Amazon Kinesis Data Analytics コンソールにサインインし、新しいストリーム処理アプリケーションを作成します。 AWS CLIAWS SDKs を使用することもできます。エンドツーエンドアプリケーションは次の 3 つのシンプルなステップで作成できます。1) 受信ストリーミングデータを設定する、2) SQL クエリを作成する、3) 結果のロード先を指定する。Kinesis Data Analytics では、JSON、CSV、および TSV などの標準的なデータ形式が認識され、ベースラインスキーマが自動的に作成されます。このスキーマは改良することができます。また、データが非構造的である場合は AWS の直感的で使いやすいスキーマエディタを使用して新しく構築することも可能です。続いて、このサービスにより、入力ストリームにスキーマが適用され、入力ストリームが絶えず更新される SQL テーブルのように表示されるので、これに対する標準的な SQL クエリを作成することもできます。クエリを作成する際は、当社の SQL エディタを使用してください。
 
SQL エディタは、ライブデータに対する構文のチェックおよびテストなど、すべての付加機能と一緒に同梱されています。また、シンプルなストリームフィルターから高度な異常検出ならびに top-K 分析まで、何でも行える SQL コードが記述されたテンプレートも利用できます。Kinesis Data Analytics により、すべてのインフラストラクチャのプロビジョニングが実行され、どのようなデータスループットでも処理できるように伸縮自在にスケーリングされます。インフラストラクチャの計画、プロビジョニング、または管理は必要ありません。
 
Q: Kinesis Data Analytics の制限事項は何ですか?
Kinesis Data Analytics により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。サービスの制限に関する詳細については、Amazon Kinesis Data Analytics for SQL デベロッパーガイドの「 制限」を参照してください。 Apache Flink アプリケーション向けサービスの 制限に関する詳細については、Amazon Kinesis Data Analytics for Apache Flink デベロッパーガイドの「制限」セクションをご参照ください。
 
Q: Amazon Kinesis Data Analytics はスキーマの登録をサポートしていますか?
はい、Apache Flink DataStream コネクタを利用すると、Amazon Kinesis Data Analytics for Apache Flink アプリケーションが AWS Glue のサーバーレス機能である AWS Glue スキーマレジストリを使用できるようになります。Apache Kafka/Amazon MSK および Amazon Kinesis Data Streams を、シンクまたはソースとして、Amazon Kinesis Data Analytics for Apache Flink ワークロードと統合できます。使用を開始する、または詳細については、スキーマレジストリの ユーザードキュメントをご覧ください。

主要な概念

Q: Kinesis Data Analytics アプリケーションとは何ですか?
アプリケーションは、ユーザーが操作する Kinesis Data Analytics エンティティです。Kinesis Data Analytics アプリケーションでは、ストリーミングデータがリアルタイムで連続的に読み込まれて処理されます。Apache Flink でサポートされている言語を使用してアプリケーションコードを記述し、着信ストリーミングデータを処理して出力を生成します。このコードにより、Kinesis Data Analytics では処理結果が設定された出力先に書き込まれます。
 
各アプリケーションは、3 つの基本的コンポーネントで構成されています。
 
入力 – アプリケーションのストリーミングソース。入力の設定では、ストリーミングソースをアプリケーション内データストリームにマッピングします。データはデータソースからアプリケーション内のデータストリームに流れます。アプリケーションコードを利用してこのようなアプリケーション内データストリームからのデータを処理し、処理したデータを後続のアプリケーション内データストリームなどのデータの宛先に送信します。 Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内、および SQL アプリケーション用の Kinesis Data Analytics の API を介して、入力を追加します。 
 
アプリケーションのコード – 入力の処理と出力の生成を行う一連の Apache Flink 演算子または SQL ステートメント。最も単純な形状では、アプリケーションコードは、ストリーミングソースに関連付けられているアプリケーション内データストリームから読み込み、出力に関連付けられているアプリケーション内データストリームに書き込む 1 つの Apache Flink 演算子か SQL ステートメントになります。Studio ノートブックの場合、これは単純な Flink SQL 選択クエリであり、結果はノートブック内のコンテキストに表示されます。Apache Flink アプリケーションまたは Studio ノートブック用の Kinesis Data Analytics でサポートされている言語で Apache Flink コードを記述したり、最初のアプリケーションデータストリームを複数のストリームに分割し、SQL アプリケーションの Kinesis Data Analytics 用のこれらの個別のストリームに追加のロジックを適用する SQL コードを記述したりすることができます。 
 
出力 – 中間結果を格納する 1 つまたは複数のアプリケーション内ストリームを作成できます。その場合、特定のアプリケーション内ストリーム内のデータを外部の出力先に保存するように、アプリケーションの出力を設定できるオプションもあります。Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内、および SQL アプリケーション用の Kinesis Data Analytics に、出力を追加します。 
 
Q: アプリケーション内データストリームとは何ですか?
アプリケーション内データストリームは、処理の実行対象となるデータを絶えずアプリケーションに保存するエンティティです。アプリケーションは継続的にアプリケーション内データストリームとの間で読み書きします。Apache Flink および Studio アプリケーションの場合、ストリーム演算子経由でデータを処理することでアプリケーション内ストリームとやりとりします。演算子により、1 つまたは複数のデータストリームが新しいデータストリームに変換されます。SQL アプリケーションの場合、SQL ステートメントを利用して SQL テーブルとやりとりする場合と同様にアプリケーション内ストリームとやりとりします。SQL ステートメントを 1 つまたは複数のデータストリームに適用し、結果を新しいデータストリームに挿入します。
 
Q: どのアプリケーションコードがサポートされていますか?
Kinesis Data Analytics は、Java、Scala、Python を使用して構築されたアプリケーションと、オープンソースの Apache Flink ライブラリおよび独自のカスタムコードをサポートしています。Kinesis Data Analytics は、オープンソースの Apache Beam ライブラリと独自のカスタマーコードを使用して Java を使って構築したアプリケーションもサポートします。 Kinesis Data Analytics Studio は、Apache Flink 互換の SQL、Python、Scala を使用してビルドされたコードをサポートしています。

アプリケーションの管理

Q: Kinesis Data Analytics アプリケーションの動作とパフォーマンスをモニタリングするにはどうすればいいですか?
AWS では Apache Flink アプリケーションの Flink ダッシュボードへのアクセスなど、Kinesis Data Analytics アプリケーションのモニタリングに使用できるさまざまなツールを提供しています。自動モニタリングを実施するように、これらのツールを設定できます。アプリケーションの監視方法については、次を参照してください。
 
Q: Kinesis Data Analytics アプリケーションへのアクセスを管理、制御する方法を教えてください。
Kinesis Data Analytics では、ユーザーがアプリケーション内で指定したストリーミングデータソース内のレコードに対する読み取り権限が必要になります。また、ユーザーがアプリケーション出力設定に指定した宛先にアプリケーション出力を書き込む権限も必要になります。これらの権限を付与するには、Kinesis Data Analytics が引き受けることのできる IAM ロールを作成します。このロールに付与する権限によって、サービスがこのロールを引き受けたときに Kinesis Data Analytics で実行できる内容が決まります。詳細については、以下のトピックを参照してください。
 
Q: Kinesis Data Analytics ではアプリケーションはどのようにスケールされますか?
Kinesis Data Analytics により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。Kinesis Data Analytics は、Amazon Kinesis 処理単位 (KPU) 数で表すことができます。1 つの KPU で 1 vCPU と 4GB メモリが与えられます。
 
Apache Flink アプリケーションおよび Studio ノートブックの場合、Kinesis Data Analytics によって、KPU あたり 50GB の稼働アプリケーションストレージが割り当てられます。このストレージはアプリケーションによってチェックポイントに利用されます。また、これは一時ディスク経由で利用できます。チェックポイントは、アプリケーションが中断したとき、即座に回復するために使用される、稼働アプリケーションの最新バックアップです。API の Parallelism パラメータと ParallelismPerKPU パラメータを利用し、Apache Flink アプリケーションタスク (ソースから読み込んだり、演算子を実行したりなど) に対する Kinesis Data Analytics の並列実行を制御することもできます。Parallelism によってタスクの同時実行インスタンスの数が定義されます。演算子、ソース、シンクはすべて定義された並列処理で実行されます。デフォルトは 1 です。KPU あたりの Parallelism によって、アプリケーションの Kinesis Processing Unit (KPU) 単位でスケジュールできる並列タスクの数が定義されます。デフォルトは 1 です。詳細については、Amazon Kinesis Data Analytics for Apache Flink デベロッパーガイド の「 スケーリング」を参照してください。
 
SQL アプリケーションの場合、各ストリーミングソースは対応するアプリケーション内ストリームにマッピングされます。多くのユーザーには必要ありませんが、入力並列処理パラメータを指定して、ソースがマッピングされるアプリケーション内ストリームの数を増やすことにより、KPU 数で表される能力をより効率的に使用することができます。Kinesis Data Analytics では、Amazon Kinesis Data Stream のシャードなど、ストリーミングデータソースのパーティションが、ユーザーが指定したアプリケーション内データストリーム数に対して均等に割り当てられます。たとえば、ストリーミングデータソースとして 10 シャードの Amazon Kinesis Data Stream があり、2 つの入力による並列処理を指定すると、Kinesis Data Analytics により、「SOURCE_SQL_STREAM_001」と「SOURCE_SQL_STREAM_002」という 2 つのアプリケーション内ストリームに対し、5 つの Amazon Kinesis シャードが割り当てられます。詳細については、Amazon Kinesis Data Analytics for SQL Developer Guide の Configuring Application Inputを参照してください。
 
Q: Kinesis Data Analytics アプリケーションの構築や管理に関するベストプラクティスは何ですか?
Apache Flink のベストプラクティスについては、Amazon Kinesis Data Analytics for Apache Flink デベロッパーガイドの「 ベストプラクティス」セクションを参照してください。このセクションでは、耐障害性、ログ記録、コーディングなどのベストプラクティスを取り上げます。
 
Amazon Kinesis Data Analytics Studio のベストプラクティスについては、Amazon Kinesis Data Analytics Studio デベロッパーガイドの「ベストプラクティス」セクションを参照してください。このセクションでは、SQL、Python、Scala アプリケーションのベスト プラクティスとサンプル、継続的に実行されるストリーム処理アプリケーションとしてコードをデプロイするための要件、パフォーマンス、ロギングなどについて説明しています。 
 
SQLのベストプラクティスの詳細については、Amazon Kinesis Data Analytics for SQL デベロッパーガイドの「 ベストプラクティス」セクションを参照してください。このセクションでは、アプリケーションの管理、入力スキーマの定義、出力への接続、およびアプリケーションコードのオーサリングについて説明します。
 
Q: Kinesis Data Analytics for Apache Flink アプリケーションを使用して Amazon VPC の背後のリソースにアクセスできますか?
はい。Amazon VPC の背後のリソースにアクセスできます。Amazon Kinesis Data Analytics デベロッパーガイドの「 Amazon VPC の使用」セクションで、VPC アクセス用にアプリケーションを設定する方法を学習できます。
 
Q: 1 つの Kinesis Data Analytics for Apache Flink アプリケーションから複数の VPC にアクセスできますか?
いいえ。複数のサブネットを指定する場合、それらは同一の VPC に存在している必要があります。VPC をピアリングすることで他の VPC に接続できます。
 
Q: VPC に接続された Kinesis Data Analytics for Apache Flink アプリケーションは、インターネットおよび AWS のサービスエンドポイントにもアクセスできますか?
個別 VPC のリソースに対するアクセスを設定された Kinesis Data Analytics for Apache Flink アプリケーションおよび Kinesis Data Analytics Studio ノートブックでは、デフォルトの構成としてインターネットにアクセスできなくなっています。Amazon Kinesis Data Analytics デベロッパーガイドの「 インターネットとサービスアクセス」セクションで、アプリケーションのインターネットアクセスを構成する方法を学習できます。 

料金と請求

Q: Kinesis Data Analytics の費用はどれくらいですか?
Amazon Kinesis Data Analytics の場合、お支払いいただくのは実際に使用した分のみです。Amazon Kinesis Data Analytics では、リソースのプロビジョニングをする必要がなく、初期費用もありません。
 
ストリーミングアプリケーションの実行に使用された KPU (Amazon Kinesis Processing Unit) の数に基づいて時間あたりの課金が発生します。KPU とは、1 vCPU のコンピューティングと 4 GB のメモリで構成されるストリーム処理能力の単位です。Amazon Kinesis Data Analytics では、メモリやコンピューティングの要求が処理の複雑性や処理されたストリーミングデータのスループットに合わせて変わるとき、ストリーム処理アプリケーションによって必要とされる KPU の数が自動的に拡大縮小されます。
 
Apache Flink と Apache Beam のアプリケーションの場合、アプリケーションのオーケストレーションに使用した KPU が、アプリケーションあたり 1 単位追加される方式で課金されます。Apache Flink と Apache Beam のアプリケーションは、稼働アプリケーションストレージと永続的アプリケーションバックアップに対しても課金されます。稼働アプリケーションストレージは Amazon Kinesis Data Analytics のステートフル処理機能のために使用され、GB 単位で毎月課金されます。永続的アプリケーションバックアップは任意です。これは、アプリケーションバックアップにポイントインタイムリカバリを提供するもので、GB 単位で毎月課金されます。
 
開発モードまたはインタラクティブモードの Amazon Kinesis Data Analytics Studio の場合、アプリケーションオーケストレーション用の追加の KPU とインタラクティブな開発用の 1 つの追加の KPU について課金されます。アプリケーション ストレージの実行にも課金されます。耐久性のあるアプリケーションのバックアップには課金されません。
 
料金の詳細については、Amazon Kinesis Data Analytics の 料金ページをご参照ください。
 
Q: Kinesis Data Analytics は AWS 無料利用枠の対象ですか?
いいえ。現在、Kinesis Data Analytics は AWS 無料利用枠の対象ではありません。AWS 無料利用枠は、AWS のサービスのグループの試用を無料で提供するプログラムです。
 
Q: 実行中ですが、ソースのデータを処理していない Kinesis Data Analytics アプリケーションは課金されますか?
Apache Flink と Apache Beam のアプリケーションの場合、Kinesis Data Analytics アプリケーションを実行しているのであれば、2 KPU と 50GB の稼働アプリケーションストレージに対する料金が最低料金として請求されます。 
 
Kinesis Data Analytics Studio ノートブックの場合、アプリケーションを実行しているのなら、3 KPU と 50GB の稼働アプリケーションストレージに対する料金が最低料金として請求されます。
 
SQL アプリケーションの場合、Kinesis Data Analytics アプリケーションを実行しているのであれば、1 KPU に対する料金が最低料金として請求されます。
 
Q: Kinesis Data Analytics のコスト以外に、私が負担する可能性のあるコストはありますか?
Kinesis Data Analytics は、データの読み込み元であるストリーミングソースと、処理したデータの書き込み先から独立した、完全マネージド型ストリーミング処理ソリューションです。アプリケーションとの間で読み書きするサービスとは別に請求されます。
Q: Apache Flink とは何ですか?
Apache Flink はストリームと一括データ処理のためのオープンソースのフレームワーク/エンジンです。用途の広い演算子を提供し、重複処理など、ストリーミングの中心的問題を効率的に解決するため、ストリーミングアプリケーションを簡単に構築できます。Apache Flink は、データストリーム全体の分散計算に対してデータ分配、通信、耐障害性を与えます。
 
Q: アプリケーションの開発方法は?
まず、AWS SDK、Apache Flink、AWS のサービス向けコネクタを含むオープンソースライブラリをダウンロードすることから始めます。ライブラリのダウンロード方法と初めてのアプリケーションを作成する方法は、Amazon Kinesis Data Analytics for Apache Flink デベロッパーガイドにあります。
 
Q: アプリケーションコードの概要を教えてください。
データストリームとストリーム演算子を利用し、Apache Flink コードを記述します。アプリケーションデータストリームは、コードを利用した処理の実行対象となるデータ構造です。データはソースからアプリケーションデータストリームに継続的に流れます。変換、分割、集計、結合、ウィンドウなどの処理をアプリケーションデータストリームで定義するために 1 つまたは複数のストリーム演算子が使用されます。データストリームと演算子はシリアルチェーンとパラレルチェーンでまとめることができます。擬似コードを利用した簡単な例を以下に示します。
DataStream <GameEvent> rawEvents = env.addSource(
	New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
	rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId, 
			event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
            .keyBy(1)
            .window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
            .apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
Q: 演算子はどのように使用すればよいのですか?
演算子は入力としてアプリケーションデータストリームを受け取り、処理したデータをアプリケーションデータストリームに出力として送信します。演算子をまとめて複数の手順を持つアプリケーションを構築できます。実装や運用に分散システムの高度な知識は必要ありません。
 
Q: どのような演算子がサポートされていますか?
Kinesis Data Analytics for Apache Flink には、Apache Flink の 25 以上の演算子が含まれています。Map、KeyBy、Aggregations、Window Join、Window など、幅広いユースケースを解決できます。Map では、任意の処理を実行できます。入ってきたデータストリームから 1 つの要素を受け取り、別の要素を生み出します。KeyBy では、指定したキーを利用してデータが論理的に整理されます。同様のデータポイントをまとめて処理できます。Aggregations では、sum、min、max など、複数のキーをまたいで処理が実行されます。Window Join では、所与のキーとウィンドウで 2 つのデータストリームが結合されます。Window では、キーを利用して日付がグループ化されます。5 分の期間で一意の項目を数えるなど、一般的には時間ベースの操作となります。
 
これらの演算子で要件が満たされない場合、カスタム演算子を構築できます。他の例は Amazon Kinesis Data Analytics for Apache Flink デベロッパーガイドの「演算子」セクションにあります。Apache Flink 演算子の完全一覧は Apache Flink ドキュメントの「 演算子」セクションにあります。
 
Q: Kinesis Data Analytics for Apache Flink アプリケーションではどのような統合がサポートされていますか?
最小限のコードで事前構築された統合をセットアップするか、独自の統合を構築して事実上すべてのデータソースに接続することができます。Apache Flink をベースとするオープンソースライブラリでは、処理データを配信するためのストリーミングの配信元、配信先、シンクがサポートされます。これには、非同期入力/出力コネクタ経由のデータ強化サポートも含まれています。オープンソースライブラリに含まれる固有コネクタの一覧を以下に示します。
  • ストリーミングデータソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams
  • 配信先またはシンク: Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon S3 (ファイルシンク統合経由で)

Apache Flink には、Apache Kafka、Apache Casssandra、Elasticsearch など、他の コネクタも含まれています。
 
Q: Kinesis Data Analytics for Apache Flink アプリケーションは、ストリームやトピック全体でデータを複製できますか?
はい。Kinesis Data Analytics for Apache Flink アプリケーションを使用して、Amazon Kinesis Data Streams、Amazon MSK、および他のシステム間でデータを複製できます。ドキュメントに記載されている は、ある Amazon MSK トピックから読み取りを行う方法、別のトピックに書き込む方法を示しています。
 
Q: カスタム統合はサポートされていますか?
ファイル、ディレクトリ、ソケット、あるいはインターネット経由でアクセスできるあらゆるものとの読み書きを可能にする一連のプリミティブの上に構築することで、アプリケーションに配信元と配信先を追加できます。Apache Flink からは、 データソースデータシンク用にこのようなプリミティブが提供されます。プリミティブには、データを継続的、1 回限り、非同期、同期などの方法で読み書きする機能などの設定が付属します。たとえば、既存のファイルベースのソース統合を延長することで、Amazon S3 から継続的に読み込むアプリケーションを設定できます。
 
Q: Kinesis Data Analytics for Apache Flink アプリケーションではどのような配信モデルが提供されていますか?
Kinesis Data Analytics for Apache Flink アプリケーションでは、ソースとシンクなど、べき等演算子を使用してアプリケーションが構築されている場合、「厳密に 1 回」の配信モデルが使用されます。つまり、処理されたデータは下流の結果に 1 回だけ影響を与えます。チェックポイントではアプリケーションの現在の状態が保存されます。Kinesis Data Analytics for Apache Flink アプリケーションでは、アプリケーションの位置を回復できるため、障害なし実行と同じ意味になります。Apache Flink アプリケーションのチェックポイントは Apache Flink の チェックポイント機能から提供されます。デフォルトでは、Kinesis Data Analytics for Apache Flink アプリケーションでは Apache Flink の「厳密に 1 回」のセマンティックスが使用されます。Apache Flink の「厳密に 1 回」のセマンティックスを活用するソース、演算子、シンクでアプリケーションを設計する場合、そのアプリケーションでは「厳密に 1 回」の処理セマンティックスがサポートされます。
 
Q: アプリケーションストレージからローカルストレージにアクセスできますか?
はい。Kinesis Data Analytics for Apache Flink アプリケーションからは、Kinesis Processing Unit (KPU) あたり 50 GB の稼働アプリケーションストレージがアプリケーションに与えられます。Kinesis Data Analytics では、アプリケーションに合わせてストレージが拡大縮小されます。稼働アプリケーションストレージは、チェックポイントを利用したアプリケーション状態の保存に利用されます。データをキャッシュするかその他の目的で一時ディスクとして使用するためにアプリケーションコードからも利用できます。Kinesis Data Analytics では、チェックポイント (演算子、リソース、シンクなど) 経由で保存されない稼働アプリケーションストレージからいつでもデータを削除できます。稼働アプリケーションストレージに保存されているデータは暗号化されます。
 
Q: Kinesis Data Analytics for Apache Flink がアプリケーションを自動バックアップする方法は?
Kinesis Data Analytics では、チェックポイントとスナップショットを利用し、稼働アプリケーションの状態が自動的にバックアップされます。チェックポイントではアプリケーションの現在の状態が保存されます。Kinesis Data Analytics for Apache Flink アプリケーションでは、アプリケーションの位置を回復できるため、障害なし実行と同じ意味になります。チェックポイントでは、稼働アプリケーションストレージが活用されます。スナップショットによって、アプリケーションのポイントインタイムリカバリが保存されます。スナップショットでは、永続的アプリケーションバックアップが活用されます。
 
Q: アプリケーションスナップショットとは何ですか?
スナップショットを利用すると、アプリケーションを前のポイントインタイムに作成/復元できます。それにより、アプリケーションの前の状態を維持したり、アプリケーションをいつでもロールバックしたりできます。スナップショットはゼロから数千の単位で管理します。スナップショットでは永続的アプリケーションバックアップが使用されます。Kinesis Data Analytics では、サイズに基づいて請求されます。Kinesis Data Analytics はデフォルトで、スナップショットに保存されているデータを暗号化します。API から個々のスナップショットを削除したり、アプリケーションを削除することですべてのスナップショットを削除したりできます。
 
Q: どのバージョンの Apache Flink をサポートしていますか?
Amazon Kinesis Data Analytics for Apache Flink アプリケーションは、Apache Flink 1.6、1.8、1.11、および 1.13 (推奨) をサポートしています。 
 
Q: Kinesis Data Analytics for Flink 1.13 でサポートされているコンポーネントのバージョンは何ですか?
Kinesis Data Analytics の Apache Flink 1.13 は、Java Development Kit のバージョン 11、Python 3.8 と Scala 2.12 をサポートしています。詳細については、AWS デベロッパーガイドの アプリケーションの作成セクションをご参照ください。
 
Q: Apache Flink アプリケーションの Kinesis Data Analyticsは Apache Beam で実行できますか?
はい、 Kinesis Data Analytics は、Apache Beam Java SDK バージョン 2.32 を使用して構築されたストリーミングアプリケーションをサポートします。Apache Beam は、複数の実行エンジンで実行できるストリーミングおよびバッチデータ処理アプリケーションを定義するためのオープンソースの統合モデルです。Java で Apache Beam ストリーミングアプリケーションを構築し、Amazon Kinesis Data Analytics の Apache Flink 1.13、オンプレミスで実行されている Apache Spark、および Apache Software Foundation がサポートしているその他の実行エンジンを使用して、それらのアプリケーションを実行できます。

Amazon Kinesis Analytics Studio アプリケーションの構築

Q: Studio アプリケーションの開発方法は?
数回クリックするだけで Amazon Kinesis Data Analytics Studio、Amazon Kinesis Data Streams、または Amazon MSK コンソールから開始してサーバーレスノートブックを起動し、データストリームをすぐにクエリしてインタラクティブなデータ分析を実行することができます。

インタラクティブなデータ分析: SQL、Python、Scala でノートブックにコードを記述し、ストリーミングデータを操作することができます。クエリの応答時間は秒単位です。組み込みの可視化を使用して、ノートブック内からデータを探索し、ストリーミング データに関するリアルタイムのインサイトを表示し、Apache Flink を利用したストリーム処理アプリケーションを簡単に開発できます。

コードを本番アプリケーションとして実行する準備ができたら、ワンクリックで、サーバーなしで 1 秒あたり数 GB のデータを処理するストリーム処理アプリケーションに移行できます。

ストリーム処理アプリケーション: コードを本番環境にプロモートする準備ができたら、クリックしてコードをビルドできます。ノートブック インターフェイスで [Deploy as stream processing application (ストリーム処理アプリケーションとしてデプロイ)] をクリックするか、CLI で単一のコマンドを発行すると、Studio は、自動スケーリングと永続的な状態を有効にしてストリーム処理アプリケーションを大規模に実行するために必要なすべてのインフラストラクチャ管理を行います。Apache Flink アプリケーションでの Amazon Kinesis Data Analytics の場合と同様です。

Q: アプリケーションコードの概要を教えてください。
Apache Flink の Table API を使用して、SQL、Python、Scala などの任意の言語により、ノートブックでコードを記述できます。Table API は、SQL の機能のスーパーセットをサポートする高レベルの抽象化およびリレーショナル API です。選択、フィルター、結合、グループ化、集計などの使い慣れた操作や、ウィンドウ処理などのストリーム固有の概念を提供します。%<interpreter> を使用して、ノートブックのセクションで使用する言語を指定することで、言語を簡単に切り替えることができます。インタープリターは、開発者がノートブックの各セクションに言語またはデータ処理エンジンを指定できるようにする Apache Zeppelin プラグインです。また、ユーザー定義関数を作成し、それらを参照してコード機能を改善することもできます。

Q: どのような SQL 操作がサポートされていますか?
スキャンとフィルター (SELECT、WHERE)、集計 (GROUP BY、GROUP BY WINDOW、HAVING)、セット (UNION、UNIONALL、INTERSECT、IN、EXISTS)、順序 (ORDER BY、LIMIT)、結合 (INNER、OUTER、時限ウィンドウ –BETWEEN、AND、一次的テーブルとの結合 – 時間の経過に伴う変化を追跡するテーブル)、Top N、重複排除、パターン認識などの SQL 操作を実行できます。GROUP BY、OUTER JOIN、Top N などの一部のクエリは、ストリーミングデータの「結果の更新」です。つまり、ストリーミングデータが処理されると、結果が継続的に更新されます。CREATE、ALTER、DROP などの他の DDL ステートメントもサポートされています。クエリとサンプルの完全なリストについては、https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/sql/queries/overview を参照してください。

Q: Python と Scala はどのようにサポートされていますか?
Apache Flink の Table API は、Python 文字列と Scala 式を使用した言語統合を通じて、Python と Scala をサポートしています。サポートされている操作は、選択、順序、グループ化、結合、フィルター、ウィンドウ処理など、サポートされている SQL 操作と非常に似ています。操作とサンプルの完全なリストはここにあります: https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/tableapi/

Q: どのバージョンの Apache Flink および Apache Zeppelin をサポートしていますか?
Kinesis Data Analytics Studio は、Apache Flink 1.13 および Apache Zeppelin 0.9 をサポートしています。

Q: Kinesis Data Analytics Studio アプリケーションでは、デフォルトでどのような統合がサポートされていますか?

  • データソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams、Amazon S3
  • 統合先、またはシンク: Amazon MSK、Amazon Kinesis Data Streams、Amazon S3

Q: カスタム統合はサポートされていますか?
いくつかの追加の手順と Apache Flink コード (Python、Scala、Java) の行を使用して追加の統合を設定することで、Amazon Elasticsearch Service、Amazon ElastiCache for Redis、Amazon Aurora、Amazon Redshift、Amazon DynamoDB、Amazon Keyspaces などの統合先を含め、Apache Flink がサポートするすべての統合との接続を定義できます。Studio アプリケーションを作成または設定するときに、これらのカスタムコネクタの実行可能ファイルをアタッチすることができます。

Q: Kinesis Data Analytics Studio または Kinesis Data Analytics SQL を使用して開発する必要がありますか?
1 回限りの処理でより包括的なストリーム処理エクスペリエンスを提供するため、Kinesis Data Analytics Studio で開始することをお勧めします。Kinesis Data Analytics Studio は、選択した言語 (SQL、Python、Scala) でストリーム処理アプリケーション開発を提供し、GB/秒の処理にスケーリングし、数時間さらには数日にわたる長時間実行計算をサポートし、数秒以内でコード更新を実行し、複数の入力を処理できます。さらに、Amazon Kinesis Data Streams や Amazon MSK などのさまざまな入力ストリームで動作します。

Kinesis Data Analytics SQL アプリケーションの構築

新しいプロジェクトでは、SQL アプリケーション用の Kinesis Data Analytics ではなく、新しい Kinesis Data Analytics Studio を使用することをお勧めします。Kinesis Data Analytics Studio は使いやすさと高度な分析機能を組み合わせており、洗練されたストリーム処理アプリケーションでも数分で構築できます。

SQL アプリケーション入力の設定

Q: Kinesis Data Analytics SQL アプリケーションではどのような入力がサポートされていますか?
Kinesis Data Analytics の SQL アプリケーションでは、ストリーミングデータソースとリファレンスデータソースという 2 種類の入力がサポートされています。ストリーミングデータソースは絶えず生成されるデータであり、アプリケーションに読み込まれて処理されます。リファレンスデータソースは静的データであり、アプリケーションで使用してストリーミングソースから配信されるデータを拡充します。各アプリケーションには、ただ 1 つのストリーミングデータソースと、ただ 1 つのリファレンスデータソースを設定できます。アプリケーションでは、Amazon Kinesis Data Streams や Amazon Kinesis Data Firehose などのストリーミングデータソースから新しいデータを絶えず読み込み、処理します。アプリケーションでは、Amazon S3 などのリファレンスデータソース全体を読み込み、使用して、SQL の JOIN によってストリーミングデータソースを拡充します。
 
Q: リファレンスデータソースとは何ですか?
リファレンスデータソースは静的データであり、アプリケーションで使用してストリーミングソースから配信されるデータを拡充します。リファレンスデータは S3 バケット内にオブジェクトとして保存されます。SQL アプリケーションを開始すると、Kinesis Data Analytics では S3 オブジェクトが読み込まれ、リファレンスデータを保存するアプリケーション内 SQL テーブルが作成されます。アプリケーションコードでは、この後に、このテーブルをアプリケーション内ストリームと結合することができます。SQL テーブル内のデータを更新するには、 UpdateApplication API を呼び出します。
 
Q: SQL アプリケーションではストリーミングデータソースをどのように設定しますか?
ストリーミングデータソースには、Amazon Kinesis Data Stream または Amazon Kinesis Data Firehose 配信ストリームを指定できます。ストリーミングデータソースの新しいデータは、リアルタイムで配信されるたびに Kinesis Data Analytics SQL アプリケーションに読み込まれます。データにアクセスするには、SQL コード内でアプリケーション内ストリームを使用します。アプリケーション内ストリームは、SQL テーブルと同様に、作成、そこへの挿入、およびそこからのデータ選択が可能です。SQL テーブルとの相違点は、アプリケーション内ストリームはストリーミングデータソースからの新しいデータで絶えず更新されるということです。
 
ストリーミングデータソースを追加するには、 AWS マネジメントコンソールを使用します。ソースの詳細については、「Kinesis Data Analytics for SQL Developer Guide」の Configuring Application Inputのセクションを参照してください。
 
Q: SQL アプリケーションではリファレンスデータソースをどのように設定しますか?
リファレンスデータソースには Amazon S3 オブジェクトを指定できます。Kinesis Data Analytics SQL アプリケーションの実行を開始すると、S3 オブジェクト全体が読み込まれます。データにアクセスするには、SQL コード内でテーブルを使用します。リファレンスデータソースを使用する最も一般的なユースケースは、SQL の JOIN を使用してストリーミングソースから配信されるデータを拡充することです。
 
リファレンスデータソースを追加するには、AWS CLI で S3 バケット、オブジェクト、IAM ロール、および関連するスキーマを指定します。このデータは、アプリケーションの開始時に Kinesis Data Analytics によりロードされ、ユーザーがなんらかの更新 API コールを行うたびに再ロードされます。
 
Q: SQL アプリケーションでは、どのようなデータ形式がサポートされていますか?
Kinesis Data Analytics の SQL アプリケーションでは、スキーマを検出し、UTF-8 でエンコードされた JSON レコードと CSV レコードを DiscoverInputSchema API を使用して自動解析できます。このスキーマは、アプリケーション内ストリームへの挿入操作の一環として、ストリームから読み込まれたデータに適用されます。
 
その他の、UTF-8 にエンコードされた、区切り文字を使用しないデータの場合、区切り文字を使用する CSV 以外のデータの場合、または discovery API でスキーマが完全には検出されなかった場合は、対話型のスキーマエディタを使用してスキーマを定義するか、または文字列操作関数を使用してデータを構造化することができます。詳細については、「Amazon Kinesis Data Analytics for SQL Developer Guide」の Using the Schema Discovery Feature and Related Editingを参照してください。
 
Q: 入力ストリームはどのように SQL コードで使用されますか?
SQL 向け Kinesis Data Analytics により、指定したスキーマが適用されるとともに、ストリーミングソースの場合にはデータが 1 つまたは複数のアプリケーション内ストリームに挿入され、ストリーミングリファレンスソースの場合にはデータが単一の SQL テーブルに挿入されます。アプリケーション内ストリーム数のデフォルト値により、ユースケースの大半のニーズが満たされます。アプリケーションが CloudWatch のメトリクス、MillisBehindLatest によって定義されたソースストリーム内の最新データを処理する際に遅延していることが判明した場合は、このデフォルト値を大きくする必要があります。必要なアプリケーション内ストリーム数は、ソースストリームのスループット量とクエリの複雑さの両方の影響を受けます。ソースストリームにマッピングされるアプリケーション内ストリーム数を指定するパラメータには、入力並列処理という名前が付いています。

SQL アプリケーション用アプリケーションコードの作成

Q: SQL アプリケーションコードの概要を教えてください。
アプリケーションコードは、入力の処理と出力の生成を行う一連の SQL ステートメントです。これらの SQL ステートメントは、アプリケーション内ストリームとリファレンステーブルに作用します。アプリケーション内ストリームは、SELECT や INSERT の SQL 操作の実行対象にできる、絶えず更新されるテーブルに似ています。設定したソースおよび出力先は、アプリケーション内ストリームを介して SQL コードで使用されます。また、クエリの中間結果を格納する追加のアプリケーション内ストリームを作成することもできます。
 
アプリケーション内ストリームを操作するには、次のパターンを使用します。
  • INSERT ステートメントのコンテキストでは必ず SELECT ステートメントを使用してください。行を選択した場合の結果は、別のアプリケーション内ストリームに挿入します。
  • ポンプのコンテキストでは INSERT ステートメントを使用してください。ポンプは、INSERT ステートメントを絶えず実行されるようにしてアプリケーション内ストリームへの書き込みを行うために使用できます。
  • ポンプは、複数のアプリケーション内ストリームを結合し、1 つのアプリケーション内ストリームからデータを選択して、その結果を別のアプリケーション内ストリームに挿入するために使用できます。
 
次の SQL コードは、シンプルですが実用的なアプリケーションです。
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
    ticker_symbol VARCHAR(4),
    change DOUBLE,
    price DOUBLE);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS 
  INSERT INTO "DESTINATION_SQL_STREAM"    
    SELECT STREAM ticker_symbol, change, price    
    FROM "SOURCE_SQL_STREAM_001";
アプリケーションコードの詳細については、「Amazon Kinesis Data Analytics for SQL Developer Guide」の Application Codeを参照してください。
 
Q: Kinesis Data Analytics には SQL コード作成用のサポートはありますか?
Kinesis Data Analytics には、ストリーミングフィルター、回転時間枠、異常検出などの一般的なユースケース用の分析テンプレートから成るライブラリがあります。これらのテンプレートには、 AWS マネジメントコンソール内の SQL エディタからアクセスできます。アプリケーションを作成して SQL エディタに移動すると、コンソールの左上隅にテンプレートが表示されます。
 
Q: Kinesis Data Analytics でリアルタイムの異常検出を実行するにはどうすればいいですか?
Kinesis Data Analytics には、異常検出用など、いくつかの高度な分析用に事前作成された SQL 関数があります。お客様の SQL コードからこの関数を呼び出すだけで、リアルタイムで異常を検出できます。Kinesis Data Analytics では、Random Cut Forest アルゴリズムを使って異常検出を実行します。Random Cut Forest の詳細については、 ストリーミングデータの例外検知に関するホワイトペーパーをご覧ください。

SQL アプリケーションで出力先を設定する

Q: どのような出力先がサポートされていますか?
Kinesis Data Analytics for SQL では、アプリケーションごとに出力先が 3 つまでサポートされています。SQL の結果は Amazon S3、Amazon Redshift、Amazon Elasticsearch Service (Amazon Kinesis Data Firehose 経由)、Amazon Kinesis Data Streams に保存できます。Kinesis Data Analytics で直接サポートされていない出力先に書き込むには、SQL 結果を Amazon Kinesis Data Streams に送信し、Amazon Kinesis Data Streams と AWS Lambda との統合を利用して、選択した出力先に送信します。
 
Q: 出力先はどのように設定しますか?
アプリケーションコード内で、SQL ステートメントの出力を 1 つまたは複数のアプリケーション内ストリームに書き込みます。オプションで、特定のアプリケーション内ストリームへのすべての書き込みを最大 4 つの外部出力先に保管する出力設定をアプリケーションに追加できます。これらの外部出力先としては Amazon S3 バケット、Amazon Redshift テーブル、Amazon Elasticsearch Service ドメイン (Amazon Kinesis Data Firehose 経由)、Amazon Kinesis Data Stream を指定できます。アプリケーションごとに 4 つの出力先がサポートされます。4 つの出力先の組み合わせは任意で指定できます。詳細については、 Configuring Output Streamsを参照してください。これは「Amazon Kinesis Data Analytics for SQL Developer Guide」の中にあります。
 
Q: 必要な出力先が直接サポートされていません。この出力先に SQL の結果を送信するにはどうすればよいですか?
SQL 向け Kinesis Data Analytics を使って直接サポートされていない出力先に書き込むには、AWS Lambda を使用します。結果を Amazon Kinesis Data Stream に書き込んでから、AWS Lambda を使用して処理された結果を読み込み、選択した出力先に送信することをお勧めします。詳細については、「 Example: AWS Lambda Integration」を参照してください。これは「Amazon Kinesis Data Analytics for SQL Developer Guide」の中にあります。または、Kinesis Data Firehose 配信ストリームを使用してデータを Amazon S3 にロードし、そのデータを読み込んで選択した出力先に送信する AWS Lambda 関数をトリガーします。詳細については、「AWS Lambda Developer Guide」の Using AWS Lambda with Amazon S3を参照してください。
 
Q: Kinesis Data Analytics ではどのような配信モデルが提供されていますか?
Kinesis Data Analytics の SQL アプリケーションでは、設定した出力先にアプリケーション出力を「少なくとも 1 回」配信する配信モデルが使用されています。Kinesis Data Analytics アプリケーションでは内部チェックポイントを使用します。これらのチェックポイントの時点では、出力レコードがデータ消失なしに出力先に配信されています。このサービスでは、チェックポイントを必要に応じて使用し、アプリケーション出力が設定された出力先に少なくとも 1 回配信されるようにします。配信モデルの詳細については、SQL デベロッパーガイド向け Amazon Kinesis Data Analytics の アプリケーション出力の設定を参照してください。

他のストリーム処理ソリューションとの比較

Q: Amazon Kinesis Data Analytics は Amazon Kinesis クライアントライブラリを使用するユーザー自身のアプリケーションの実行とはどのように異なりますか?
Amazon Kinesis クライアントライブラリ (KCL) とはビルド済みのライブラリであり、Amazon Kinesis Data Stream からデータを読み込んで処理するコンシューマアプリケーションの作成を支援するものです。KCL は、データストリームボリュームの変化への適応、ストリーミングデータの負荷分散、分散サービスの調整、データ処理の耐障害性などの複雑な問題に対応します。KCL を利用することにより、アプリケーションの構築中にビジネスロジックに集中できます。
 
Kinesis Data Analytics を使用すると、ストリーミングデータをリアルタイムで処理およびクエリできます。標準的な SQL を使用するだけでデータストリームを処理できるため、新しいプログラミング言語を学習する必要はありません。Kinesis Data Analytics に受信データストリームを取り込み、SQL クエリを作成して、結果のロード先を指定します。Kinesis Data Analytics では、KCL を使用して、基盤となるアプリケーションの操作の一部としてストリーミングデータソース内のデータが読み込まれます。このサービスにより、データとともに、チェックポイントなど KCL の使い方に関連する多数の複雑な概念が抽出されます。
 
完全マネージド型のソリューションが必要であり、SQL を使ってデータストリーム内のデータを処理したい場合は、Kinesis Data Analytics を使用してください。要件が Kinesis Data Analytics では満たせないため、カスタム処理ソリューションを構築する必要がある場合は、KCL を使用してください。構築したコンシューマーアプリケーションを管理できるようになります。

サービスレベルアグリーメント (SLA)

Q: Amazon Kinesis Data Analytics SLA では何が保証されますか?

Amazon Kinesis Data Analytics SLA では、Amazon Kinesis Data Analytics について少なくとも 99.9% の月間稼働率が保証されます。

Q: SLA サービスクレジットの資格を有しているかどうかは、どうすればわかりますか?

同じリージョン内の複数のアベイラビリティーゾーンでタスクを実行しており、任意の月間課金期間中に月間稼働率が 99.9% 未満であった場合、Amazon Kinesis Data Analytics SLA に基づいて Amazon Kinesis Data Analytics に対する SLA クレジットを受け取る資格があります。

SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、Amazon Kinesis SLA の詳細ページを参照してください。

Amazon Kinesis Data Analytics の使用を開始する

Kinesis Data Analytics の料金ページをご覧ください。
コストを計算

Amazon Kinesis Data Analytics の料金ページをご覧ください。

入門ガイドを見る
入門ガイドを見る

SQL または Apache Flink のステップバイステップガイドで Amazon Kinesis Data Analytics の使用方法を学習できます。

コンソールで構築を開始する
ストリーミングアプリケーションの構築を開始する

Amazon Kinesis Data Analytics コンソールからストリーミングアプリケーションを構築する。