クイック スタート: Kafka から Azure Data Explorer にデータを取り込むQuickstart: Ingest data from Kafka into Azure Data Explorer

Azure Data Explorer は、ログと利用統計情報データのための高速で拡張性に優れたデータ探索サービスです。Azure Data Explorer is a fast and highly scalable data exploration service for log and telemetry data. Azure Data Explorer には、Kafka からの取り込み (データの読み込み) 機能があります。Azure Data Explorer offers ingestion (data loading) from Kafka. Kafka は、システム間やアプリケーション間で確実にデータを移動するリアルタイム ストリーミング データ パイプラインの構築を可能にする分散ストリーミング プラットフォームです。Kafka is a distributed streaming platform that allows building of real-time streaming data pipelines that reliably move data between systems or applications.

前提条件Prerequisites

Kafka コネクタのセットアップKafka connector setup

Kafka Connect は、Apache Kafka と他のシステムとの間でスケーラブルに、かつ高い信頼性でデータをストリーム配信するためのツールです。Kafka Connect is a tool for scalably and reliably streaming data between Apache Kafka and other systems. 大規模なデータのコレクションを Kafka との間でやり取りするコネクタを簡単に定義できます。It makes it simple to quickly define connectors that move large collections of data into and out of Kafka. ADX Kafka Sink が Kafka のコネクタとして機能します。The ADX Kafka Sink serves as the connector from Kafka.

バンドルBundle

Kafka は、カスタム コネクタの役割を果たすプラグインとして .jar を読み込むことができます。Kafka can load a .jar as a plugin that will act as a custom connector. そのような .jar を生成するために、ここではローカルにコードを複製し、Maven を使用してビルドします。To produce such a .jar, we will clone the code locally and build using Maven.

複製Clone

git clone git://github.com:Azure/kafka-sink-azure-kusto.git
cd ./kafka-sink-azure-kusto/kafka/

構築Build

Maven でローカルにビルドし、依存関係をすべて含んだ .jar を生成します。Build locally with Maven to produce a .jar complete with dependencies.

ルート ディレクトリ kafka-sink-azure-kusto 内で、次のコマンドを実行します。Inside the root directory kafka-sink-azure-kusto, run:

mvn clean compile assembly:single

デプロイDeploy

Kafka にプラグインを読み込みます。Load plugin into Kafka. Docker を使用したデプロイ例は、kafka-sink-azure-kusto でご覧いただけます。An deployment example using docker can be found at kafka-sink-azure-kusto

Kafka コネクタとそのデプロイ方法に関する詳細なドキュメントについては、Kafka Connect に関するセクションをご覧ください。Detailed documentation on Kafka connectors and how to deploy them can be found at Kafka Connect

構成の例Example configuration

name=KustoSinkConnector 
connector.class=com.microsoft.azure.kusto.kafka.connect.sink.KustoSinkConnector 
kusto.sink.flush_interval_ms=300000 
key.converter=org.apache.kafka.connect.storage.StringConverter 
value.converter=org.apache.kafka.connect.storage.StringConverter 
tasks.max=1 
topics=testing1 
kusto.tables.topics_mapping=[{'topic': 'testing1','db': 'daniel', 'table': 'TestTable','format': 'json', 'mapping':'TestMapping'}] 
kusto.auth.authority=XXX 
kusto.url=https://ingest-{mycluster}.kusto.windows.net/ 
kusto.auth.appid=XXX 
kusto.auth.appkey=XXX 
kusto.sink.tempdir=/var/tmp/ 
kusto.sink.flush_size=1000

ADX にターゲット テーブルを作成するCreate a target table in ADX

Kafka からのデータの送信先となるテーブルを ADX に作成します。Create a table in ADX to which Kafka can send data. 前提条件」でプロビジョニングしたクラスターとデータベースにテーブルを作成します。Create the table in the cluster and database provisioned in the Prerequisites.

  1. Azure portal でクラスターに移動し、[クエリ] を選択します。In the Azure portal, navigate to your cluster and select Query.

    アプリケーションの [クエリ] リンク

  2. 次のコマンドをウィンドウにコピーし、[実行] を選択します。Copy the following command into the window and select Run.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    

    クエリの作成の実行

  3. 次のコマンドをウィンドウにコピーし、[実行] を選択します。Copy the following command into the window and select Run.

    .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp","path":"$.timeStamp","datatype":"datetime"},{"column":"Name","path":"$.name","datatype":"string"},{"column":"Metric","path":"$.metric","datatype":"int"},{"column":"Source","path":"$.source","datatype":"string"}]'
    

    このコマンドによって、受信 JSON データがテーブル (TestTable) の列名とデータ型にマップされます。This command maps incoming JSON data to the column names and data types of the table (TestTable).

サンプル データを作成するGenerate sample data

Kafka クラスターが ADX に接続されたら、ダウンロードしたサンプル アプリを使用してデータを生成します。Now that the Kafka cluster is connected to ADX, use the sample app you downloaded to generate data.

複製Clone

サンプル アプリをローカルに複製します。Clone the sample app locally:

git clone git://github.com:Azure/azure-kusto-samples-dotnet.git
cd ./azure-kusto-samples-dotnet/kafka/

アプリの実行Run the app

  1. Visual Studio でサンプル アプリ ソリューションを開きます。Open the sample app solution in Visual Studio.

  2. Program.cs ファイルの connectionString 定数を実際の Kafka 接続文字列に更新します。In the Program.cs file, update the connectionString constant to your Kafka connection string.

    const string connectionString = @"<YourConnectionString>";
    
  3. アプリケーションをビルドし、実行します。Build and run the app. アプリから Kafka クラスターにメッセージが送信され、10 秒ごとに状態が出力されます。The app sends messages to the Kafka cluster, and it prints out its status every ten seconds.

  4. アプリからいくつかメッセージが送信されたら、次の手順に進みます。After the app has sent a few messages, move on to the next step.

データを照会して確認するQuery and review the data

  1. 取り込み中にエラーが発生していないことを確認します。To make sure no errors occured during ingestion:

    .show ingestion failures
    
  2. 新たに取り込まれたデータを確認します。To see the newly ingested data:

    TestTable 
    | count
    
  3. メッセージの内容を確認します。To see the content of the messages:

    TestTable
    

    結果セットは次のようになっている必要があります。The result set should look like the following:

    メッセージの結果セット

次の手順Next steps