製品をチェック

製品の情報と無償トライアル:

Azure Synapse 連携ソリューション

データ連携でお困りですか?

お問い合わせ

Node.js からAzure Synapse データをクエリ


API Server は、データを外部に公開します。CData API Server のOData エンドポイントを使って、Node.js からAzure Synapse へのCRUD クエリを実行します。


CData API Server とADO.NET Provider for AzureSynapse(もしくは240+ の他のADO.NET Providers)を使って、Azure Synapse をOData エンドポイントして公開し、Node.js からシンプルなHTTP リクエストでクエリを実現します。本記事ではAPI Server を使ってJSON でフォーマットされたAzure Synapse データをNode.js でリクエストする方法を説明します。

API サーバーをセットアップ

以下のステップに従って、安全なAzure Synapse OData サービスの作成を開始します。

デプロイ

API サーバーは独自のサーバーで実行されます。Windows では、スタンドアロンサーバーまたはIIS を使用して展開できます。Java サーブレットコンテナで、API Server WAR ファイルをドロップします。詳細とハウツーについては、ヘルプドキュメントを参照してください。

API Server は、Microsoft AzureAmazon EC2Heroku にも簡単にデプロイできます。

Azure Synapse に接続

API サーバーとADO.NET Provider for AzureSynapse を展開した後、[Settings]->[Connections]をクリックし、API サーバー管理コンソールで新しい接続を追加してAzure Synapse に接続するために必要な認証値とその他の接続プロパティを指定します。

Connecting to Azure Synapse

In addition to providing authentication (see below), set the following properties to connect to a Azure Synapse database:

  • Server: The server running Azure. You can find this by logging into the Azure portal and navigating to Azure Synapse Analytics -> Select your database -> Overview -> Server name.
  • Database: The name of the database, as seen in the Azure portal on the Azure Synapse Analytics page.

Authenticating to Azure Synapse

Connect to Azure Synapse using the following properties:

  • User: The username provided for authentication with Azure.
  • Password: The password associated with the authenticating user.

次に、[Settings]->[Resources]をクリックして、API サーバーへのアクセスを許可するAzure Synapse エンティティを選択できます。

API サーバーユーザーを承認

作成するOData サービスを決定したら、[Settings]->[Users]をクリックしてユーザーを承認します。API サーバーは、認証トークンベースの認証を使用して主要な認証スキームをサポートします。IP アドレスに基づいてアクセスを制限することもできます。ローカルマシンを除くすべてのIP アドレスはデフォルトで制限されています。SSL を使用して、接続を認証及び暗号化することができます。

Node.js からAzure Synapse OData フィードを消費

OData フィードはNode.js で簡単に使用できます。Node.js のHTTP クライアントを使用して、API サーバーのOData エンドポイントからJSON 形式のデータをリクエストできます。リクエストを行った後、レスポンスの本文を作成し、JSON.parse() 関数を呼び出してレコードに解析できます。

以下のコードはProducts データに対して認証されたリクエストを行います。 以下のURL の例では、ProductName カラムの値がKonbu のレコードを検索する単純なフィルターを適用しています。

var http = require('http'); http.get({ protocol: "http:", hostname:"MyServer.com", port:MyPort, path: "/api.rsc/Products?$filter=" + encodeURIComponent("ProductName eq 'Konbu'"), auth:'MyUser:MyAuthtoken' }, function(res) { var body = ''; res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { console.log(body); var jsonData = JSON.parse(body); }); }).on('error', function(e) { console.log("Error: ", e); });