SQL Server からのリンク サーバーとしての Azure Data Explorer

SQL Server を使用すると、リンク サーバーを作成して他のデータ ソースに接続できます。 リンク サーバーを使用すると、SQL Server のデータとリンク サーバーのデータを組み合わせたクエリを実行できます。 これにより、1 つの場所で複数のソースのデータにアクセスして操作できます。 この記事では、SQL Server から Azure Data Explorer にリンク サーバーを作成する方法について説明します。

Note

Azure Data Explorer に対して認証を行うには、SQL Server で Microsoft Entra アカウントを使用する必要があります。

接続を確立する

次の手順では、リンク サーバー接続を設定する方法について説明します。

  1. 最新の ODBC ドライバーをインストールします。

  2. Azure Data Explorer に接続するための ODBC ドライバー を作成します。

  3. ODBC ドライバーの接続文字列を準備します。 次の例を参照してください。 <cluster_uri> と <database> を関連する値に置き換えます。

    `Driver={ODBC Driver 17 for SQL Server};Server=<cluster_uri>;Database=<database>;Authentication=ActiveDirectoryIntegrated;Language=any@MaxStringSize:4000`. 
    

    Note

    言語パラメーターは、文字列を NVARCHAR(4000)としてエンコードするように Azure Data Explorer に指示します。 この回避策の詳細については、「ODBC」を参照してください。

  4. [新しいリンク サーバー] ダイアログを開きます。

  5. General設定で、Provider のMicrosoft OLE DB Provider for ODBC Driversを選択し前の手順の接続文字列を Provider 文字列 ボックスに入力します。

  6. Security設定で、ログインの現在のセキュリティ コンテキスト使用して作成されたを選択します。

  7. OKを選択してリンク サーバーを保存します。

クエリ データ

次の構文を使用して、Azure Data Explorer からデータを照会します。

SELECT * FROM OpenQuery(LINKEDSERVER, 'SELECT * from MyFunction(10)')

Azure Data Explorer からデータを抽出するために、Kusto のストアド関数を使用します。 詳細については、TDS 経由の KQLを参照してください。

SQL Server には、リンク サーバーからのリモートテーブル関数を独自のクエリで直接使用できないという制限があります。 この制限を克服するには、 OpenQuery 関数を使用して、リンク サーバーでクエリを実行します。 その後、外部の T-SQL クエリを使用して、SQL サーバーのデータと、Azure Data Explorer ストアド関数から返されたデータを組み合わせることができます。