Node.js からKafka のデータをSQL Server データベースとしてクエリ

加藤龍彦
加藤龍彦
デジタルマーケティング
Node.js からKafka のデータにSQL Server クエリを実行します。

CData Connect AI を使用すると、SQL Server インターフェース経由でKafka のデータをクエリできます。以下のステップに従って、Connect AI にKafka の仮想データベースを作成し、Node.js を使用してクエリを実行します。

CData Connect AI は、Kafka のピュアMySQL かつクラウドベースのインターフェースを提供し、ネイティブにサポートされているデータベースにデータを複製することなくNode.js からの手軽なリアルタイムKafka のデータクエリを実現します。Node.js でデータをクエリすると、CData Connect AI はサポートされているすべてのSQL 操作(フィルタ、JOIN など)を直接Kafka にプッシュし、サーバー側の処理を活用してKafka のデータを高速で返します。

Connect AI からKafka に接続する

CData Connect AI は直感的なクリック操作ベースのインターフェースを使ってデータソースに接続します。
  1. Connect AI にログインし、 Add Connection をクリックします。 コネクションを追加
  2. Add Connection パネルから「Kafka」を選択します。 データソースを選択
  3. 必要な認証情報を入力し、Kafka に接続します。

    Apache Kafka 接続プロパティの取得・設定方法

    それでは、Apache Kafka に接続していきましょう。.NET ベースのエディションは、Confluent.Kafka およびlibrdkafka ライブラリに依存して機能します。 これらのアセンブリはインストーラーにバンドルされており、CData 製品と一緒に自動的にインストールされます。 別のインストール方法をご利用の場合は、NuGet から依存関係のあるConfluent.Kafka 2.6.0をインストールしてください。

    Apache Kafka サーバーのアドレスを指定するには、BootstrapServers パラメータを使用します。

    デフォルトでは、CData 製品はデータソースとPLAINTEXT で通信しており、そのため、データはすべて暗号化されずに送信されます。 通信を暗号化したい場合は、以下の設定を行ってください:

    1. UseSSL をtrue に設定し、CData 製品がSSL 暗号化を使用するように構成します
    2. SSLServerCert およびSSLServerCertType を設定して、サーバー証明書をロードします

    Apache Kafka への認証

    続いて、認証方法を設定しましょう。Apache Kafka データソースでは、以下の認証方法をサポートしています:

    • Anonymous
    • Plain
    • SCRAM ログインモジュール
    • SSL クライアント証明書
    • Kerberos

    Anonymous 認証

    Apache Kafka の特定のオンプレミスデプロイメントでは、認証接続プロパティを設定することなくApache Kafka に接続できます。 このような接続はanonymous(匿名)と呼ばれます。

    匿名認証を行うには、以下のプロパティを設定してください。

    • AuthScheme:None

    その他の認証方法については、ヘルプドキュメントをご確認ください。

    コネクションの設定(Salesforce の例)
  4. Create & Test をクリックします。
  5. Edit Kafka Connection ページのPermissions タブに移動し、ユーザーベースのアクセス許可を更新します。 権限の更新

パーソナルアクセストークンを追加する

OAuth 認証をサポートしないサービス、アプリケーション、プラットフォーム、フレームワークから接続する場合、パーソナルアクセストークン(PAT)を認証に使用できます。きめ細かくアクセスを管理するために、サービスごとに個別のPAT を作成するのがベストプラクティスです。

    1. User Profile ページでPersonal Access Token セクションにスクロールし、 Create PAT をクリックします。
    2. PAT の名前を入力して Create をクリックします。 新しいPAT を作成
    3. パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。

    接続が設定されたら、Node.js からKafka のデータに接続できるようになります。

    Node.js からKafka をクエリ

    以下の例は、SQL Server モジュールを使用してKafka へのクエリを実行する方法を説明しています。以下の情報が必要です。

    • server:tds.cdata.com
    • port:14333
    • user:Connect AI ユーザー(例:[email protected])
    • password:上記のユーザーのPAT
    • database:Kafka 用に構成した接続(ApacheKafka1)

    以下のコードで、Kafka に接続してクエリが実行できます。

    var sql = require('mssql')
    var config = {
    	server: 'tds.cdata.com',
    	port:14333,
    	user: '[email protected]', //update me
    	password:'CONNECT_USER_PAT', //update me
    	options: {
    		encrypt: true,
    		database: 'ApacheKafka1'
    	}
    }
    
    sql.connect(config, err => {
        if(err){
            throw err ;
        }
        new sql.Request().query('SELECT * FROM SampleTable_1', (err, result) => {
            console.dir(result)
        })
    
    });
    
    sql.on('error', err => {
        console.log("SQL Error: " ,err);
    })
    

はじめる準備はできましたか?

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル