JRuby からKafka にデータ連携

加藤龍彦
加藤龍彦
デジタルマーケティング
リアルタイムKafka に連携するシンプルなJRuby アプリケーションを作成します。

JRuby はRuby プログラミング言語の高性能で安定した、完全にスレッド化されたJava 実装です。CData JDBC Driver for ApacheKafka を使用すると、JRuby からリアルタイムKafka へのデータ連携を簡単に実装できます。ここでは、Kafka に接続し、クエリを実行して結果を表示する簡単なJRuby アプリを作成する方法を説明します。

Kafka のデータにJDBC で接続

アプリを作成する前に、JDBC Driver のJAR ファイルのインストール場所をメモします。 (通常はC:\Program Files\CDatat\CData JDBC Driver for ApacheKafka\libにあります。)

JRuby は、JDBC をネイティブにサポートしているため、簡単にKafka に接続してSQL クエリを実行できます。java.sql.DriverManager クラスのgetConnection 関数を使用してJDBC 接続を初期化します。

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

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

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

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

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

Apache Kafka への認証

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

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

Anonymous 認証

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

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

  • AuthSchemeNone

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

ビルトイン接続文字列デザイナー

JDBC URL の構成については、Kafka JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

java -jar cdata.jdbc.apachekafka.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

以下はKafka の一般的なJDBC 接続文字列です。

jdbc:apachekafka:User=admin;Password=pass;BootStrapServers=https://localhost:9091;Topic=MyTopic;

Kafka のデータへの接続性を持つJRuby アプリを作成

新しいRuby ファイル(例: ApacheKafkaSelect.rb) を作成してテキストエディタで開き、次のコードをファイルにコピーします。

require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for ApacheKafka 2018/lib/cdata.jdbc.apachekafka.jar'

url = "jdbc:apachekafka:User=admin;Password=pass;BootStrapServers=https://localhost:9091;Topic=MyTopic;"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT Id, Column1 FROM SampleTable_1")
while (rs.next) do
  puts rs.getString(1) + ' ' + rs.getString(2)
end

ファイルが完成したら、コマンドラインからファイルを実行するだけでJRuby でKafka を表示できるようになります。

jruby -S ApacheKafkaSelect.rb

SQL-92 クエリをKafka に書き込むと、Kafka を独自のJRuby アプリケーションに素早く簡単に組み込むことができます。今すぐ無料トライアルをダウンロードしましょう。

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

Apache Kafka Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Apache Kafka Icon Apache Kafka JDBC Driver お問い合わせ

Apache Kafka データに連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。