SAS Viya で Kafka のリアルタイムデータを分析
SAS Viya は、データ管理、機械学習、分析を強化し、効率的な意思決定とインサイトの創出を促進する分析プラットフォームです。CData Connect AI と組み合わせることで、クラウド間でリアルタイムにKafka のデータにアクセスし、予測モデルの構築やデータドリブンな意思決定のためのインサイト作成など、さまざまな用途に活用できます。この記事では、SAS Viya クラウドプラットフォームから Connect AI に接続し、セルフサービス AI と分析のデプロイメントにKafka のデータを統合する方法をご紹介します。
CData Connect AI は、Kafka 向けに純粋な SQL インターフェースをクラウド間で提供します。これにより、データをレプリケーションすることなく、SAS Viya でKafka のデータに簡単に接続できます。Connect AI は SAS Viya からは SQL Server データベースとまったく同じように見え、フィルタや JOIN などの SQL 操作をKafkaに直接プッシュする最適化されたデータ処理により、サーバーサイド処理を活用してKafka のデータをすばやく取得します。
Kafka への接続を設定(SAS Viya 向け)
SAS Viya から Kafka への接続は、CData Connect AI を介して行います。それでは、Kafka のデータを SAS Viya から利用できるようにするため、Kafka への接続を作成していきましょう。
- Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
- 接続を追加パネルから「Kafka」を選択
-
Kafka に接続するために必要な認証プロパティを入力します。
Apache Kafka 接続プロパティの取得・設定方法
それでは、Apache Kafka に接続していきましょう。.NET ベースのエディションは、Confluent.Kafka およびlibrdkafka ライブラリに依存して機能します。 これらのアセンブリはインストーラーにバンドルされており、CData 製品と一緒に自動的にインストールされます。 別のインストール方法をご利用の場合は、NuGet から依存関係のあるConfluent.Kafka 2.6.0をインストールしてください。
Apache Kafka サーバーのアドレスを指定するには、BootstrapServers パラメータを使用します。
デフォルトでは、CData 製品はデータソースとPLAINTEXT で通信しており、そのため、データはすべて暗号化されずに送信されます。 通信を暗号化したい場合は、以下の設定を行ってください:
- UseSSL をtrue に設定し、CData 製品がSSL 暗号化を使用するように構成します
- SSLServerCert およびSSLServerCertType を設定して、サーバー証明書をロードします
Apache Kafka への認証
続いて、認証方法を設定しましょう。Apache Kafka データソースでは、以下の認証方法をサポートしています:
- Anonymous
- Plain
- SCRAM ログインモジュール
- SSL クライアント証明書
- Kerberos
Anonymous 認証
Apache Kafka の特定のオンプレミスデプロイメントでは、認証接続プロパティを設定することなくApache Kafka に接続できます。 このような接続はanonymous(匿名)と呼ばれます。
匿名認証を行うには、以下のプロパティを設定してください。
- AuthScheme:None
その他の認証方法については、ヘルプドキュメントをご確認ください。
- 「Save & Test」をクリック
-
Kafka 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。
パーソナルアクセストークンを追加
REST API、OData API、または仮想 SQL Server を通じて Connect AI に接続する場合は、パーソナルアクセストークン(PAT)を使用して認証を行います。アクセス管理を細かく制御するため、サービスごとに個別の PAT を作成することをお勧めします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
- 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
-
PAT に名前を付けて「Create」をクリックします。
- パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして、今後の利用のために安全に保管してください。
接続の設定と PAT の生成が完了したら、SAS Viya からKafka のデータに接続する準備は完了です。
SAS Viya から CData Connect AI に接続
以下の手順で、CData Connect AI で確立した接続を使用して Kafka から SAS Viya にデータを読み込む方法を説明します。
-
CData Connect AI JDBC ドライバーをダウンロードしてインストールします。
- CData Connect AI の Integrations ページを開きます。
- JDBC を検索して選択します。
- セットアップファイルをダウンロードして実行します。
- インストールが完了すると、JAR ファイルはインストールディレクトリ(lib フォルダ内)に配置されます。
- SAS Viya にログインし、左上の Applications Menu に移動します。
- Analytics Life Cycle トピックから Develop Code and Flows を選択します。
- Explorer タブに移動し、左パネルの SAS Server をクリックします。
- 以下の手順で CData Connect JDBC ドライバーの JAR ファイルをアップロードします。
- 「Home」ディレクトリを右クリックします。
- Upload files をクリックします。
- 指定された場所に JAR ファイルを配置し、ファイルパスをメモします。
- 完了したら、Libraries タブに移動し、CData Connect JDBC 用の Create a new library connection(以下に示すように左上隅)をクリックします。
- ライブラリ接続設定を入力します。
- Connection name: 接続の名前を入力
- Library name (libref): ライブラリの参照名を入力
- Library type: 「SAS/ACCESS to JDBC」を選択
- Properties タブをクリックし、Library attributes を READONLY に設定します。
- 「Connection Options」タブをクリックし、以下の詳細を入力します。
- Hive JDBC driver's class name: cdata.jdbc.connect.ConnectDriver
- Java CLASSPATH: JAR ドライバーファイルへのファイルパスを入力(手順 5 を参照)
- Test connection をクリックします。成功したら、Save and connect をクリックします。
- をクリックして新しいタブを追加し、SAS program を選択します。
- 以下のコードブロックに設定パラメータを入力します。
- Libref: 手順 9 で定義したライブラリ参照名を入力
- ClassPath: JAR ドライバーファイルへのファイルパスを入力
- Username: CData Connect のユーザー名を入力。CData Connect インターフェースの右上に表示されています(例: [email protected])
- DefaultCatalog: クエリを実行したい CData Connect AI で設定した接続を入力
- Password: 「パーソナルアクセストークンを追加」セクションで生成した PAT を入力
libname [Libref] JDBC classpath=[ClassPath] class="cdata.jdbc.connect.ConnectDriver" URL="jdbc:Connect:AuthScheme=Basic;User=[Username];DefaultCatalog=[DefaultCatalog];DefaultSchema=dbo;Password=[PAT]"; proc sql; SELECT * FROM [Libref].MyTable; quit; - Run をクリックします。CData Connect AI から SAS Viya にデータが読み込まれるのを確認できます。
クラウドアプリケーションから Kafka へのリアルタイムアクセス
これで、SAS Viya からKafka のデータへのダイレクトなクラウド間接続が完成しました。データをレプリケーションすることなく、予測モデルの構築、データドリブンな意思決定のためのインサイト作成など、さまざまな用途に活用できます。
Connect AI をお試しいただき、数百種類の SaaS、ビッグデータ、NoSQL ソースへのリアルタイムデータアクセスをクラウドアプリケーションから直接実現してください。