다음을 통해 공유


SQL Server 에뮬레이션을 사용하여 KQL 쿼리 및 저장된 함수 실행

Azure Data Explorer는 SQL Server에서 데이터를 쿼리하는 방법과 유사한 방식으로 데이터를 쿼리할 수 있는 TDS(테이블 형식 데이터 스트림) 엔드포인트를 제공합니다. 엔드포인트는 TDS 버전 7.x 및 8.0을 지원합니다.

이 문서에서는 SQL 호환 클라이언트에서 저장된 함수KQL(Kusto 쿼리 언어) 쿼리를 실행하는 방법을 알아봅니다.

참고 항목

이 문서의 정보는 RPC 호출이라고도 하는 TDS 프로토콜을 통해 매개 변수가 있는 호출을 실행하는 데 적용됩니다.

자세한 내용은 Azure Data Explorer의 SQL Server 에뮬레이션 에 대한 개요를 참조하세요.

KQL 쿼리 실행

SQL 저장 프로시저 sp_execute_kql 를 사용하여 매개 변수가 있는 쿼리를 포함하여 KQL 쿼리를 실행할 수 있습니다. 프로시저는 저장 프로시저와 sp_executesql 비슷합니다.

참고 항목

이 프로시저는 sp_execute_kql 다음 예제와 같이 RPC 호출을 통해서만 호출할 수 있으며 일반 SQL 쿼리 내에서는 호출할 수 없습니다.

첫 번째 매개 변수 sp_execute_kql 는 KQL 쿼리이고 다른 매개 변수는 쿼리 매개 변수처리됩니다. 다음 예제에서는 sp_execute_kql를 사용하는 방법을 보여 줍니다.

  using (var connection = new SqlConnection(csb.ToString()))
  {
    await connection.OpenAsync();
    using (var command = new SqlCommand("sp_execute_kql", connection))
    {
      command.CommandType = CommandType.StoredProcedure;
      var query = new SqlParameter("@kql_query", SqlDbType.NVarChar);
      command.Parameters.Add(query);
      var parameter = new SqlParameter("mylimit", SqlDbType.Int);
      command.Parameters.Add(parameter);
      query.Value = "StormEvents | take myLimit";
      parameter.Value = 3;
      using (var reader = await command.ExecuteReaderAsync())
      {
        // Read the response.
      }
    }
  }

참고 항목

TDS를 통해 호출 sp_execute_kql 할 때 매개 변수 형식은 프로토콜에 의해 설정되며 선언할 필요가 없습니다.

저장된 함수 호출

SQL 저장 프로시저와 같은 저장 함수를 만들고 호출할 수 있습니다. 예를 들어 다음 표에 설명된 대로 저장된 함수가 있는 경우 코드 예제와 같이 함수를 호출할 수 있습니다.

Name 매개 변수 본문 폴더 DocString
MyFunction (myLimit: long) {StormEvents | take myLimit} MyFolder 매개 변수가 있는 데모 함수
  using (var connection = new SqlConnection(csb.ToString()))
  {
    await connection.OpenAsync();
    using (var command = new SqlCommand("kusto.MyFunction", connection))
    {
      command.CommandType = CommandType.StoredProcedure;
      var parameter = new SqlParameter("mylimit", SqlDbType.Int);
      command.Parameters.Add(parameter);
      parameter.Value = 3;
      using (var reader = await command.ExecuteReaderAsync())
      {
        // Read the response.
      }
    }
  }

참고 항목

저장된 함수와 에뮬레이트된 SQL 시스템 저장 프로시저를 구분하려면 스키마에 대한 명시적 참조를 사용하여 저장된 함수를 kusto 호출합니다. 이 예제에서 저장된 함수는 .를 사용하여 kusto.Myfunction호출됩니다.