ODBC を介してNode.js からKafka のデータをクエリ

node-odbc を使用して、Node.js からKafka のデータへのSQL クエリを実行します。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-01-09

この記事で実現できるKafka 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

Node.js はブラウザ上以外でJavaScript コードを使用できるJavaScript ランタイム環境です。CData ODBC Driver for ApacheKafka を使用すれば、Node.js アプリとスクリプトから、リアルタイムKafka のデータにアクセスできます。この記事ではnode-odbc のインストールと、リアルタイムKafka のデータへのアクセスが可能な、シンプルなNode.js アプリケーションを作成するために必要なツールについて説明します。

ビルトインの最適化されたデータ処理により、CData ODBC Driver は比類のないパフォーマンスで、Node.js のリアルタイムKafka のデータとやりとりできます。Node.js からKafka に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をKafka に直接プッシュし、組み込まれたSQL エンジンを利用してサポートされていない操作(主にSQL 関数とJOIN 操作)をクライアント側で処理します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. Kafka をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにKafka のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてKafka の接続を設定、2.Node.js 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとKafka への接続設定

まずは、本記事右側のサイドバーからApacheKafka ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

必要な接続プロパティの値が未入力の場合には、データソース名(DSN)で入力します。組み込みのMicrosoft ODBC Data Source Administrator を使用し、DSN を構成できます。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定する方法は、ヘルプドキュメントの「はじめに」を参照してください。

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

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

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

デフォルトでは、本製品はデータソースとPLAINTEXT で通信し、これはすべてのデータが暗号化なしで送信されることを意味します。 通信を暗号化するには:

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

Apache Kafka への認証

Apache Kafka データソースは、次の認証メソッドをサポートしています:

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

Anonymous

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

匿名認証を行うには、このプロパティを設定します。

  • AuthSchemeNone

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

node-odbc を構築する

CData ODBC Driver を介してKafka に接続するには、必要なツールをインストールした後に、node-odbc を手動で構築する必要があります。

必要なツールをインストールする

以下のコマンドでは、node-odbc の構築に必要なツールをインストールします。(ツールをグローバルにインストールする-g パラメータに注意してください。)

npm i -g windows-build-tools
npm i -g node-gyp

node-odbc を構築する

必要なツールをインストールしたらNode.js アプリケーションのディレクトリを作成し、Node.js スクリプトで使用するバイナリを構築するodbc をインストールします。

mkdir nodeodbc
cd nodeodbc
npm i -g node

Node.js からKafka をクエリ

ODBC Driver がインストールされ、DSN が構成されて、node-odbc が構築されたら、Node.js アプリケーションからリアルタイムKafka のデータをクエリすることができるようになります。以下のサンプルコードは、特定のDSN に接続してSampleTable_1 テーブルをクエリします。

myscript.js

const odbc = require('odbc');

async function queryApacheKafka() {
    const connection = await odbc.connect(`DSN=CData ApacheKafka Source`);
    const data = await connection.query('SELECT Id, Column1 FROM SampleTable_1');
    console.log(data);
}

queryApacheKafka();

アプリケーションを作成したら、node を使用してスクリプトを実行します。

node myscript.js
Sample program results (Salesforce is shown.

おわりに

CData ODBC Driver for ApacheKafka の30日の無償評価版 をダウンロードすればNode.js でリアルタイムKafka のデータを使用できます。ご不明な点があれば、サポートチームにお問い合わせください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。