ODBC を介してNode.js からStack Exchange のデータをクエリ

古川えりか
古川えりか
コンテンツスペシャリスト
node-odbc を使用して、Node.js からStack Exchange のデータへのSQL クエリを実行します。



Node.js はブラウザ上以外でJavaScript コードを使用できるJavaScript ランタイム環境です。CData ODBC Driver for API を使用すれば、Node.js アプリとスクリプトから、リアルタイムStack Exchange のデータにアクセスできます。この記事ではnode-odbc のインストールと、リアルタイムStack Exchange のデータへのアクセスが可能な、シンプルなNode.js アプリケーションを作成するために必要なツールについて説明します。

ビルトインの最適化されたデータ処理により、CData ODBC Driver は比類のないパフォーマンスで、Node.js のリアルタイムStack Exchange のデータとやりとりできます。Node.js からStack Exchange に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をStack Exchange に直接プッシュし、組み込まれたSQL エンジンを利用してサポートされていない操作(主にSQL 関数とJOIN 操作)をクライアント側で処理します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. Stack Exchange をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにStack Exchange のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてStack Exchange の接続を設定、2.Node.js 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとStack Exchange への接続設定

まずは、本記事右側のサイドバーからAPI ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

必要な接続プロパティの値が未入力の場合には、データソース名(DSN)で入力します。組み込みのMicrosoft ODBC Data Source Administrator を使用し、DSN を構成できます。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定する方法は、ヘルプドキュメントの「はじめに」を参照してください。

まず、Profile 接続プロパティをディスク上の Stack Exchange プロファイルの場所に設定します(例:C:\profiles\StackExchange.apip)。次に、ProfileSettings 接続プロパティを Stack Exchange の接続文字列に設定します(以下を参照)。

Stack Exchange API プロファイル設定

StackApps でアプリケーションを登録して、API キーを取得します。Site プロパティでは、クエリ対象の Stack Exchange サイトを指定します(例:stackoverflow)。

node-odbc を構築する

CData ODBC Driver を介してStack Exchange に接続するには、必要なツールをインストールした後に、node-odbc を手動で構築する必要があります。

必要なツールをインストールする

以下のコマンドでは、node-odbc の構築に必要なツールをインストールします。(ツールをグローバルにインストールする-g パラメータに注意してください。)

npm i -g windows-build-tools
npm i -g node-gyp

node-odbc を構築する

必要なツールをインストールしたらNode.js アプリケーションのディレクトリを作成し、Node.js スクリプトで使用するバイナリを構築するodbc をインストールします。

mkdir nodeodbc
cd nodeodbc
npm i -g node

Node.js からStack Exchange をクエリ

ODBC Driver がインストールされ、DSN が構成されて、node-odbc が構築されたら、Node.js アプリケーションからリアルタイムStack Exchange のデータをクエリすることができるようになります。以下のサンプルコードは、特定のDSN に接続してAnswers テーブルをクエリします。

myscript.js

const odbc = require('odbc');

async function queryAPI() {
    const connection = await odbc.connect(`DSN=CData API Source`);
    const data = await connection.query('SELECT AnswerId, CreationDate FROM Answers');
    console.log(data);
}

queryAPI();

アプリケーションを作成したら、node を使用してスクリプトを実行します。

node myscript.js
Sample program results (Salesforce is shown.

おわりに

CData ODBC Driver for API の30日の無償評価版 をダウンロードすればNode.js でリアルタイムStack Exchange のデータを使用できます。ご不明な点があれば、サポートチームにお問い合わせください。

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

API Driver で Stack Exchange のライブデータに接続

Stack Exchange に接続