관리 명령 개요
이 문서에서는 Kusto를 관리하는 데 사용되는 관리 명령(제어 명령이라고도 함)에 대해 설명합니다. 관리 명령은 데이터베이스 테이블의 데이터가 아닌 정보를 검색하거나 서비스 상태를 수정하기 위한 서비스 요청입니다.
쿼리와 관리 명령 구분
Kusto는 세 가지 메커니즘을 사용하여 언어 수준, 프로토콜 수준 및 API 수준에서 쿼리 및 관리 명령을 구분합니다. 이 작업은 보안상의 목적으로 수행됩니다.
언어 수준에서 요청 텍스트의 첫 번째 문자는 요청이 관리 명령인지 쿼리인지를 결정합니다. 관리 명령은 점(.
) 문자로 시작해야 하며 해당 문자로 쿼리를 시작할 수 없습니다.
프로토콜 수준에서는 서로 다른 HTTP/HTTPS 엔드포인트가 쿼리가 아닌 제어 명령에 사용됩니다.
API 수준에서는 쿼리가 아닌 관리 명령을 보내는 데 다양한 함수가 사용됩니다.
쿼리 및 관리 명령 결합
관리 명령은 쿼리(그 반대의 경우는 아님) 또는 기타 관리 명령을 참조할 수 있습니다. 지원되는 몇 가지 시나리오는 다음과 같습니다.
- AdminThenQuery: 관리 명령이 실행되고 결과(임시 데이터 테이블로 표시됨)가 쿼리에 대한 입력으로 사용됩니다.
- AdminFromQuery: 쿼리 또는
.show
관리자 명령이 실행되고 결과(임시 데이터 테이블로 표시됨)가 관리 명령에 대한 입력으로 사용됩니다.
모든 경우에 전체 조합은 기술적으로 쿼리가 아닌 관리 명령이므로 요청 텍스트는 점(.
) 문자로 시작해야 하며 요청은 서비스의 관리 엔드포인트로 전송되어야 합니다.
또한 쿼리 문은 텍스트의 쿼리 부분 내에 표시됩니다(명령 자체 앞에 나올 수 없음).
참고
AdminThenQuery 작업의 사용을 제한하는 것이 좋습니다.
AdminThenQuery는 다음 두 가지 방법 중 하나로 표시됩니다.
- 따라서 쿼리는 파이프(
|
) 문자를 사용하여 관리 명령의 결과를 다른 데이터 생성 쿼리 연산자처럼 처리합니다. - 그런 다음, 관리 명령의 결과를 라는
$command_results
특수 기호에 도입하는 세미콜론(;
) 문자를 사용하여 쿼리에서 여러 번 사용할 수 있습니다.
예를 들면 다음과 같습니다.
// 1. Using pipe: Count how many tables are in the database-in-scope:
.show tables
| count
// 2. Using semicolon: Count how many tables are in the database-in-scope:
.show tables;
$command_results
| count
// 3. Using semicolon, and including a let statement:
.show tables;
let useless=(n:string){strcat(n,'-','useless')};
$command_results | extend LastColumn=useless(TableName)
AdminFromQuery는 <|
문자 조합으로 표시됩니다. 예를 들어, 다음 예제에서는 먼저 단일 열(string
형식의 str
이름)과 단일 행이 있는 테이블을 생성하는 쿼리를 실행하고, 컨텍스트에서 이 테이블을 MyTable
이름으로 데이터베이스에 작성합니다.
.set MyTable <|
let text="Hello, World!";
print str=text
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기