Node.js からSFTP のデータをSQL Server データベースとしてクエリ

加藤龍彦
加藤龍彦
デジタルマーケティング
Node.js からSFTP のデータにSQL Server クエリを実行します。

CData Connect AI を使用すると、SQL Server インターフェース経由でSFTP のデータをクエリできます。以下のステップに従って、Connect AI にSFTP の仮想データベースを作成し、Node.js を使用してクエリを実行します。

CData Connect AI は、SFTP のピュアMySQL かつクラウドベースのインターフェースを提供し、ネイティブにサポートされているデータベースにデータを複製することなくNode.js からの手軽なリアルタイムSFTP のデータクエリを実現します。Node.js でデータをクエリすると、CData Connect AI はサポートされているすべてのSQL 操作(フィルタ、JOIN など)を直接SFTP にプッシュし、サーバー側の処理を活用してSFTP のデータを高速で返します。

Connect AI からSFTP に接続する

CData Connect AI は直感的なクリック操作ベースのインターフェースを使ってデータソースに接続します。
  1. Connect AI にログインし、 Add Connection をクリックします。 コネクションを追加
  2. Add Connection パネルから「SFTP」を選択します。 データソースを選択
  3. 必要な認証情報を入力し、SFTP に接続します。

    FTP は、SFTP プロトコルを使用してSFTP サーバーとの間のファイル転送を行います。接続するにはRemoteHost を指定します。FTP はUser、Password、および公開鍵認証(SSHClientCert)を使用します。 SSHAuthMode を選択し、選択に基づいて接続値を指定します。

    次の接続プロパティを設定し、ファイルシステムのリレーショナルビューをコントロールします。

    • RemotePath: 現在の作業ディレクトリに設定。
    • TableDepth: ビューとしてレポートするサブフォルダの深度を制御するために設定。
    • FileRetrievalDepth: ファイルを再帰的に取得し、Root テーブルにリストするために設定。
    ストアドプロシージャは、ファイル、のダウンロード、アップロード、およびプロトコルコマンドの送信に利用できます。SQL を使用してサーバーと対話する方法の詳細については、ヘルプドキュメントの「データモデル」を参照してください。

    コネクションの設定(Salesforce の例)
  4. Create & Test をクリックします。
  5. Edit SFTP Connection ページのPermissions タブに移動し、ユーザーベースのアクセス許可を更新します。 権限の更新

パーソナルアクセストークンを追加する

OAuth 認証をサポートしないサービス、アプリケーション、プラットフォーム、フレームワークから接続する場合、パーソナルアクセストークン(PAT)を認証に使用できます。きめ細かくアクセスを管理するために、サービスごとに個別のPAT を作成するのがベストプラクティスです。

    1. User Profile ページでPersonal Access Token セクションにスクロールし、 Create PAT をクリックします。
    2. PAT の名前を入力して Create をクリックします。 新しいPAT を作成
    3. パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。

    接続が設定されたら、Node.js からSFTP のデータに接続できるようになります。

    Node.js からSFTP をクエリ

    以下の例は、SQL Server モジュールを使用してSFTP へのクエリを実行する方法を説明しています。以下の情報が必要です。

    • servertds.cdata.com
    • port:14333
    • user:Connect AI ユーザー(例:[email protected]
    • password:上記のユーザーのPAT
    • database:SFTP 用に構成した接続(SFTP1)

    以下のコードで、SFTP に接続してクエリが実行できます。

    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: 'SFTP1'
    	}
    }
    
    sql.connect(config, err => {
        if(err){
            throw err ;
        }
        new sql.Request().query('SELECT * FROM MyDirectory', (err, result) => {
            console.dir(result)
        })
    
    });
    
    sql.on('error', err => {
        console.log("SQL Error: " ,err);
    })
    

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

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル