Node.js からIBM Cloud Object Storage のデータをSQL Server データベースとしてクエリ
CData Connect AI を使用すると、SQL Server インターフェース経由でIBM Cloud Object Storage のデータをクエリできます。以下のステップに従って、Connect AI にIBM Cloud Object Storage の仮想データベースを作成し、Node.js を使用してクエリを実行します。
CData Connect AI は、IBM Cloud Object Storage のピュアMySQL かつクラウドベースのインターフェースを提供し、ネイティブにサポートされているデータベースにデータを複製することなくNode.js からの手軽なリアルタイムIBM Cloud Object Storage のデータクエリを実現します。Node.js でデータをクエリすると、CData Connect AI はサポートされているすべてのSQL 操作(フィルタ、JOIN など)を直接IBM Cloud Object Storage にプッシュし、サーバー側の処理を活用してIBM Cloud Object Storage のデータを高速で返します。
Connect AI からIBM Cloud Object Storage に接続する
CData Connect AI は直感的なクリック操作ベースのインターフェースを使ってデータソースに接続します。- Connect AI にログインし、 Add Connection をクリックします。
- Add Connection パネルから「IBM Cloud Object Storage」を選択します。
-
必要な認証情報を入力し、IBM Cloud Object Storage に接続します。
Cloud Object Storage 接続プロパティの取得・設定方法
Cloud Object Storage に接続する前に、Cloud Object Storage インスタンスを登録してCloud Object Storage API キーとCRN を取得していきます。
Cloud Object Storage の新規インスタンスの登録
IBM Cloud アカウントにCloud Object Storage がまだない場合は、以下の手順に従ってアカウントにCloud Object Storage のインスタンスを作成できます。
- IBM Cloud アカウントにログインします。
- Cloud Object Storage ページに移動して、インスタンス名を指定して「作成」をクリックします。Cloud Object Storage の新規インスタンスにリダイレクトされます。
API キー
API キーは以下の手順で取得できます。
- まずは、IBM Cloud アカウントにログインします。
- API キーページに移動します。
- 中央右隅のIBM Cloud APIキーの作成 をクリックして、新しいAPI キーを作成します。
- ポップアップウィンドウが表示されたら、API キーの名前を指定して作成をクリックします。ダッシュボードからはアクセスできなくなるため、API Key を控えておきましょう。
Cloud Object Storage CRN
デフォルトでは、CData 製品はCloud Object Storage CRN を自動で取得します。ただし、複数のアカウントがある場合は、CloudObjectStorageCRN を明示的に指定する必要があります。この値は、次の2つの方法で取得できます。
- Services ビューをクエリする。これにより、IBM Cloud Object Storage インスタンスとそれぞれのCRN がリストされます。
- IBM Cloud で直接CRN を見つける。これを行うには、IBM Cloud のダッシュボードに移動します。リソースリストで、ストレージからCloud Object Storage リソースを選択してCRN を取得します。
IBM Cloud Object Storage への接続
これで準備は完了です。以下の接続プロパティを設定してください。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 認証を繰り返す必要がなく、さらに自動でアクセストークンを設定できます。
- ApiKey:セットアップ中に控えたAPI キーを指定。
- CloudObjectStorageCRN(オプション):控えておいたCloud Object Storage のCRN に設定。Cloud Object Storage アカウントが複数ある場合のみ設定する必要があります。
プロパティを設定したら、これで接続設定は完了です。
- Create & Test をクリックします。
- Edit IBM Cloud Object Storage Connection ページのPermissions タブに移動し、ユーザーベースのアクセス許可を更新します。
パーソナルアクセストークンを追加する
OAuth 認証をサポートしないサービス、アプリケーション、プラットフォーム、フレームワークから接続する場合、パーソナルアクセストークン(PAT)を認証に使用できます。きめ細かくアクセスを管理するために、サービスごとに個別のPAT を作成するのがベストプラクティスです。
- User Profile ページでPersonal Access Token セクションにスクロールし、 Create PAT をクリックします。
- PAT の名前を入力して Create をクリックします。
- パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。
- server:tds.cdata.com
- port:14333
- user:Connect AI ユーザー(例:[email protected])
- password:上記のユーザーのPAT
- database:IBM Cloud Object Storage 用に構成した接続(IBMCloudObjectStorage1)
接続が設定されたら、Node.js からIBM Cloud Object Storage のデータに接続できるようになります。
Node.js からIBM Cloud Object Storage をクエリ
以下の例は、SQL Server モジュールを使用してIBM Cloud Object Storage へのクエリを実行する方法を説明しています。以下の情報が必要です。
以下のコードで、IBM Cloud Object Storage に接続してクエリが実行できます。
var sql = require('mssql')
var config = {
server: 'tds.cdata.com',
port:14333,
user: '[email protected]', //update me
password:'CONNECT_USER_PAT', //update me
options: {
encrypt: true,
database: 'IBMCloudObjectStorage1'
}
}
sql.connect(config, err => {
if(err){
throw err ;
}
new sql.Request().query('SELECT * FROM Objects', (err, result) => {
console.dir(result)
})
});
sql.on('error', err => {
console.log("SQL Error: " ,err);
})