ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
Elasticsearch は、人気の分散型全文検索エンジンです。データを一元的に格納することで、超高速検索や、関連性の細かな調整、パワフルな分析が大規模に、手軽に実行可能になります。Elasticsearch にはデータのローディングを行うパイプラインツール「Logstash」があります。CData Drivers を利用することができるので、30日の無償評価版をダウンロードしてあらゆるデータソースを簡単にElasticsearch に取り込んで検索・分析を行うことができます。
この記事では、CData Driver for IBMCloudObjectStorage を使って、IBM Cloud Object Storage のデータをLogstash 経由でElasticsearch にロードする手順を説明します。
それでは、Logstash でElasticsearch にIBM Cloud Object Storage データの転送を行うための設定ファイルを作成していきます。
Cloud Object Storage に接続する前に、Cloud Object Storage インスタンスを登録してCloud Object Storage API キーとCRN を取得していきます。
IBM Cloud アカウントにCloud Object Storage がまだない場合は、以下の手順に従ってアカウントにSQL Query のインスタンスをインストールできます。
API キーは以下の手順で取得できます。
デフォルトでは、CData 製品はCloud Object Storage CRN を自動で取得します。ただし、複数のアカウントがある場合は、CloudObjectStorageCRN を明示的に指定する必要があります。この値は、次の2つの方法で取得できます。
これで準備は完了です。以下の接続プロパティを設定してください。
プロパティを設定したら、これで接続設定は完了です。
input { jdbc { jdbc_driver_library => "../logstash-core/lib/jars/cdata.jdbc.ibmcloudobjectstorage.jar" jdbc_driver_class => "Java::cdata.jdbc.ibmcloudobjectstorage.IBMCloudObjectStorageDriver" jdbc_connection_string => "jdbc:ibmcloudobjectstorage:ApiKey=myApiKey;CloudObjectStorageCRN=MyInstanceCRN;Region=myRegion;OAuthClientId=MyOAuthClientId;OAuthClientSecret=myOAuthClientSecret;" jdbc_user => "" jdbc_password => "" schedule => "*/30 * * * * *" statement => "SELECT Key, Etag FROM Objects WHERE Bucket = 'someBucket'" } } output { Elasticsearch { index => "ibmcloudobjectstorage_Objects" document_id => "xxxx" } }
それでは作成した「logstash.conf」ファイルを元にLogstash を実行してみます。
> logstash-7.8.0\bin\logstash -f logstash.conf
成功した旨のログが出ます。これでIBM Cloud Object Storage データがElasticsearch にロードされました。
例えばKibana で実際にElasticsearch に転送されたデータを見てみます。
GET ibmcloudobjectstorage_Objects/_search { "query": { "match_all": {} } }
データがElasticsearch に格納されていることが確認できました。
CData JDBC Driver for IBMCloudObjectStorage をLogstash で使うことで、IBM Cloud Object Storage コネクタとして機能し、簡単にデータをElasticsearch にロードすることができました。ぜひ、30日の無償評価版をお試しください。