SharePoint Excel Services のデータをApache Kafka トピックにストリーミング

Dibyendu Datta
Dibyendu Datta
Lead Technology Evangelist
CData JDBC Driver とKafka Connect JDBC コネクタを使用して、Apache Kafka でSharePoint Excel Services のデータにアクセスし、ストリーミングできます。

Apache Kafka は、主にリアルタイムデータパイプラインやイベント駆動型アプリケーションの構築に使用されるオープンソースのストリーム処理プラットフォームです。CData JDBC Driver for SharePoint Excel Servicesと組み合わせることで、Kafka はライブのSharePoint Excel Services のデータを扱うことができます。この記事では、SharePoint Excel Services データをApache Kafka トピックに接続、アクセス、ストリーミングする方法と、Confluent Control Center を起動してConfluent プラットフォームのKafka インフラストラクチャを使用して受信したSharePoint Excel Services のデータをユーザーが安全に管理および監視できるようにする方法について説明します。

CData JDBC Driver は最適化されたデータ処理機能を内蔵しており、ライブのSharePoint Excel Services のデータとのやり取りにおいて比類のないパフォーマンスを提供します。SharePoint Excel Services に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作を直接SharePoint Excel Services にプッシュし、サポートされていない操作(多くの場合SQL 関数やJOIN 操作)については組み込みのSQL エンジンを使用してクライアント側で処理します。組み込みの動的メタデータクエリにより、ネイティブのデータ型を使用してSharePoint Excel Services のデータを操作および分析できます。

前提条件

Apache Kafka トピックでSharePoint Excel Services のデータをストリーミングするためにCData JDBC Driver を接続する前に、クライアントのLinux ベースのシステムに以下をインストールおよび設定してください。

  1. Confluent Platform for Apache Kafka
  2. Confluent Hub CLI のインストール
  3. Confluent Platform 用のSelf-Managed Kafka JDBC Source Connector

SharePoint Excel Services のデータへの新しいJDBC 接続を定義

  1. Linux ベースのシステムにCData JDBC Driver for SharePoint Excel Servicesをダウンロードします。
  2. 以下の手順に従って新しいディレクトリを作成し、すべてのドライバーの内容を展開します:
    1. SharePoint Excel Services という名前の新しいディレクトリを作成します。
      		mkdir ExcelServices
      		
    2. ダウンロードしたドライバーファイル(.zip)をこの新しいディレクトリに移動します。
      		mv ExcelServicesJDBCDriver.zip ExcelServices/
      		
    3. CData ExcelServicesJDBCDriver の内容をこの新しいディレクトリに解凍します。
      		unzip ExcelServicesJDBCDriver.zip
      		
  3. SharePoint Excel Services ディレクトリを開き、lib フォルダに移動します。
    ls
    cd lib/
    
  4. CData JDBC Driver for SharePoint Excel Serviceslib フォルダの内容をKafka Connect JDBClib フォルダにコピーします。Kafka Connect JDBC フォルダの内容を確認し、cdata.jdbc.excelservices.jar ファイルがlib フォルダに正常にコピーされたことを確認します。
    cp -r /path/to/CData JDBC Driver for SharePoint Excel Services/lib/* /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/
    cd /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/
    
  5. 以下のコマンドを使用して、CData SharePoint Excel Services JDBC ドライバーのライセンスをインストールします。名前とメールアドレスを入力してください。
    	java -jar cdata.jdbc.excelservices.jar -l
    	
  6. プロダクトキーまたは"TRIAL" を入力します(ライセンスの有効期限が切れた場合は、CData サポートチームまでお問い合わせください)。
  7. 以下のコマンドを使用してConfluent ローカルサービスを起動します:
    	confluent local services start
    	

    これにより、Zookeeper、Kafka、Schema Registry、Kafka REST、Kafka CONNECT、ksqlDB、Control Center などのすべてのConfluent サービスが起動します。これで、CData JDBC Driver for SharePoint Excel Services を使用してKafka Connect Driver 経由でksqlDB のKafka トピックにメッセージをストリーミングする準備が整いました。

    Confluent ローカルサービスを起動
  8. POST HTTP API リクエストを使用してKafka トピックを手動で作成します:
     curl --location 'server_address:8083/connectors'
    	--header 'Content-Type: application/json'
    	--data '{
    		"name": "jdbc_source_cdata_excelservices_01",
    		"config": {
    			"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    			"connection.url": "jdbc:excelservices:URL=https://myorg.sharepoint.com;[email protected];Password=password;File=Book1.xlsx;",
    		"topic.prefix": "excelservices-01-",
    		"mode": "bulk"
    		}
    	}'
    

    HTTP POST 本文(上記)で使用されるフィールドについて説明します:

    • connector.class: 使用するKafka Connect コネクタのJava クラスを指定します。
    • connection.url: SharePoint Excel Services データに接続するためのJDBC 接続URL です。

      組み込みの接続文字列デザイナー

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

      		java -jar cdata.jdbc.excelservices.jar
      		

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

      ワークブックへの接続

      どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。

      • Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
      • Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。

      テーブルとしてのスプレッドシートデータへの接続

      CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。

      API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。

      • OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
      • REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。

      DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。

      SharePoint オンプレミスへの接続

      URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。

      SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUserPassword を設定してください。

      Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。

        Windows(NTLM)

        最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUserPassword を設定して接続してください。

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

        組み込みの接続文字列デザイナーを使用してJDBC URL を生成(Salesforce の例)
      • topic.prefix: コネクタによって作成されるKafka トピックに追加されるプレフィックスです。「excelservices-01-」に設定されています。
      • mode: コネクタの動作モードを指定します。ここでは「bulk」に設定されており、コネクタがバルクデータ転送を実行するように設定されていることを示しています。

      このリクエストにより、SharePoint Excel Services のすべてのテーブル/コンテンツがKafka トピックとして追加されます。

      注意: リクエストをPOST するIP アドレス(サーバー)は、Linux ネットワークのIP アドレスです。

    • ksqlDB を実行し、トピックを一覧表示します。以下のコマンドを使用します:
      ksql
      list topics;
      
      Kafka トピックを一覧表示(BigCommerce の例)
    • トピック内のデータを表示するには、以下のSQL ステートメントを入力します:
      PRINT topic FROM BEGINNING;
      

Confluent Control Center への接続

Confluent Control Center のユーザーインターフェースにアクセスするには、上記のセクションで説明した"confluent local services" を実行し、ローカルブラウザでhttp://<server address>:9021/clusters/ と入力してください。

Confluent Control Center に接続

おわりに

CData JDBC Driver for SharePoint Excel Servicesの30日間無償トライアルをダウンロードして、SharePoint Excel Services データをApache Kafka にストリーミングしましょう。ご不明な点があれば、サポートチームまでお問い合わせください。

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

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

 ダウンロード

詳細:

SharePoint Excel Services Icon SharePoint Excel Services JDBC Driver お問い合わせ

SharePoint サーバーでホストされているリアルタイムなExcel スプレッドシートコンテンツを組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。