Kusto CLI

Kusto.Cli는 Kusto 클러스터에서 쿼리 및 제어 명령을 보내기 위한 명령줄 유틸리티입니다. 다음과 같은 여러 모드 중 하나로 실행할 수 있습니다.

  • REPL 모드: 사용자가 쿼리 및 명령을 입력하고 도구가 결과를 표시한 다음, 다음 사용자 쿼리/명령을 대기합니다. ("REPL"은 "읽기/eval/print/loop"를 의미합니다.)

  • 실행 모드: 사용자가 하나 이상의 쿼리와 명령을 입력하여 명령줄 인수로 실행합니다. 인수는 자동으로 순서대로 실행되고 결과는 콘솔에 출력됩니다. 필요에 따라 모든 입력 쿼리 및 명령이 실행되면 도구가 REPL 모드로 전환됩니다.

  • 스크립트 모드: 실행 모드와 비슷하지만 명령줄 인수 대신 파일("스크립트")에 지정된 쿼리 및 명령이 있습니다.

Kusto.Cli는 일반적으로 코드를 작성해야 하는 Kusto 서비스에 대한 작업을 자동화하기 위해 주로 제공됩니다. 예를 들어 C# 프로그램 또는 PowerShell 스크립트입니다.

도구 가져오기

Kusto.Cli는 .NET용으로 다운로드할 수 있는 NuGet 패키지 Microsoft.Azure.Kusto.Tools 의 일부입니다. 패키지를 다운로드한 후 패키지의 tools 폴더를 대상 폴더로 추출합니다. xcopy-installable이므로 추가 설치가 필요하지 않습니다.

도구 실행

Kusto.Cli를 실행하려면 하나 이상의 명령줄 인수가 필요합니다. 일반적으로 해당 인수는 도구가 연결해야 하는 Kusto 서비스에 대한 연결 문자열. 자세한 내용은 Kusto 연결 문자열을 참조하세요. 명령줄 인수, 알 수 없는 인수 집합 또는 /help 스위치를 사용하여 도구를 실행하면 콘솔에 도움말 메시지가 표시됩니다.

예를 들어 다음 명령을 사용하여 Kusto.Cli를 실행합니다. 명령은 Kusto 서비스에 연결 help 하고 데이터베이스 컨텍스트를 데이터베이스로 Samples 설정합니다.

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true"

참고

powerShell과 같은 셸 애플리케이션이 세미콜론(;) 및 유사한 문자를 잘못 해석하지 못하도록 하려면 연결 문자열 주위에 큰따옴표를 사용합니다.

명령줄 인수

(명령줄 인수의 전체 목록을 가져오려면 다음을 실행합니다 Kusto.Cli.exe -help.)

Kusto.Cli.exeConnectionString [스위치]

ConnectionString

  • 모든 Kusto 연결 정보를 포함하는 Kusto 연결 문자열. 기본값은 net.tcp://localhost/NetDefaultDB입니다.

-execute:QueryOrCommand

  • 지정된 경우 실행 모드에서 Kusto.Cli를 실행하고 지정된 쿼리 또는 명령을 실행합니다. 이 스위치는 반복할 수 있으며 쿼리/명령은 모양 순서대로 순차적으로 실행됩니다. 이 스위치는 또는 -scriptml-script 함께 사용할 수 없습니다.

-keepRunning:EnableKeepRunning

  • 또는 falsetrue 지정된 경우 모든 -script 또는 값이 처리된 후 REPL 모드를 사용하거나 -execute 사용하지 않도록 설정합니다.

-script:ScriptFile

  • 지정된 경우 스크립트 모드에서 Kusto.Cli를 실행합니다. 지정된 스크립트 파일이 로드되고 쿼리 또는 명령이 순차적으로 실행됩니다. 줄 줄은 아래에 설명된 대로 줄이 또는 && 조합으로 끝나는 경우를 & 제외하고 쿼리/명령을 구분하는 데 사용됩니다. 이 스위치는 와 -execute함께 사용할 수 없습니다.

-scriptml:ScriptFile

  • 지정된 경우 스크립트 모드에서 Kusto.Cli를 실행합니다. 지정된 스크립트 파일이 로드되고 쿼리 또는 명령이 순차적으로 실행됩니다. 전체 스크립트 파일은 단일 쿼리 또는 명령으로 간주됩니다(줄 입력 모드 또는 블록 입력 모드 고려 사항 무시). 이 스위치는 와 -execute함께 사용할 수 없습니다.

-scriptQuitOnError:QuitOnFirstScriptError

  • 사용하도록 설정하면 스크립트의 명령이나 쿼리에 오류가 발생하면 Kusto.Cli가 종료됩니다. 사용하지 않도록 설정하면 오류에도 불구하고 스크립트 실행이 계속됩니다. 기본적으로 이 스위치는 사용하도록 설정됩니다.

-echo:EnableEchoMode

  • 또는 로 truefalse지정된 경우 에코 모드를 사용하거나 사용하지 않도록 설정합니다. 에코 모드를 사용하도록 설정하면 출력에서 모든 쿼리 또는 명령이 반복됩니다.

-transcript:TranscriptFile

  • 지정된 경우 프로그램 출력을 TranscriptFile에 씁니다.

-logToConsole:EnableLogToConsole

  • 또는 로 truefalse지정된 경우 콘솔에 프로그램 출력 표시를 사용하거나 사용하지 않도록 설정합니다.

-lineMode:EnableLineMode

  • 콘솔 또는 스크립트에서 쿼리 또는 명령을 입력할 때 줄 바꿈을 처리하는 방법을 결정합니다. 기본적으로 (또는 명시적으로 로 true설정된 경우) 도구는 "줄 입력 모드"를 사용합니다. 로 false설정하면 스크립트가 "블록 입력 모드"로 읽혀집니다. 이러한 두 가지 모드에 대한 설명은 아래를 참조하세요.

예제

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true" -script:"c:\mycommands.txt"

참고

콜론과 인수 값 사이에 공백이 없어야 합니다.

지시문

Kusto.Cli는 처리를 위해 서비스로 보내는 대신 도구에서 여러 지시문을 실행합니다.

지시문 설명
?
#h
#help
간단한 도움말 메시지 가져오기
q
#quit
#exit
도구 종료
#a
#abort
중단된 도구 종료
#clip 다음 쿼리 또는 명령의 결과가 클립보드에 복사됩니다.
#cls 콘솔 화면 지우기
#connect[ConnectionString] 다른 Kusto 서비스에 연결합니다( ConnectionString을 생략하면 현재 서비스가 표시됩니다.)
#crp [이름 [=]] 클라이언트 요청 속성의 값을 설정하거나 표시하거나 모든 값을 표시합니다.
#crp (-list | -doc) [접두사] 클라이언트 요청 속성, 접두사 또는 모두를 나열합니다.
#dbcontext [DatabaseName] 쿼리 및 명령에서 사용하는 "컨텍스트" 데이터베이스를 DatabaseName으로 변경합니다. 생략하면 현재 컨텍스트가 표시됩니다.
ke텍스트 실행 중인 Kusto에 지정된 텍스트를 보냅니다. Explorer 프로세스
#loop텍스트개수 텍스트를 여러 번 실행합니다.
#qp [이름 [=]] 쿼리 매개 변수의 값을 설정하거나 표시하거나 모든 값을 표시합니다. 시작/끝에 있는 작은따옴표/큰따옴표가 잘립니다.
#save파일 다음 쿼리 또는 명령의 결과는 표시된 CSV 파일에 저장됩니다.
#script파일 표시된 스크립트를 실행합니다.
#scriptml파일 표시된 다중 줄 스크립트를 실행합니다.

줄 입력 모드 및 블록 입력 모드

기본적으로 Kusto.Cli는 줄 입력 모드에서 실행됩니다. 각 줄 바꿈 문자는 쿼리/명령 간의 구분 기호로 해석되며 실행을 위해 줄이 즉시 전송됩니다.

이 모드에서는 긴 쿼리 또는 명령을 여러 줄로 분할할 수 있습니다. & 줄 바꿈 앞에 있는 줄의 마지막 문자인 문자는 Kusto.Cli가 다음 줄을 계속 읽게 합니다. 줄 바꿈 앞에 있는 줄의 마지막 문자인 문자는 && Kusto.Cli가 줄 바꿈을 무시하고 다음 줄을 계속 읽게 합니다.

또한 Kusto.Cli는 명령줄에서 를 -lineMode:false 지정하거나 지시문을 #blockmode실행하여 블록 입력 모드에서 실행을 지원합니다. 이 모드에서 Kusto.Cli는 Kusto와 비슷한 방식으로 동작합니다. Explorer 및 Kusto.WebExplorer에서 해당 줄은 "블록"으로 함께 읽혀지고 각 블록은 단일 쿼리 또는 명령으로 구성되며 블록은 둘 사이에 하나 이상의 빈 줄로 구분됩니다.

참고

스크립트 파일(-script)에서 쿼리/명령을 읽을 때 블록 입력 모드를 사용하는 것이 좋습니다.

의견

Kusto.Cli는 // 새 줄을 주석 줄로 시작하는 문자열을 해석합니다. 줄의 나머지 부분을 무시하고 다음 줄을 계속 읽습니다.

도구 전용 옵션

명령 효과 현재
#timeon|#timeoff enable/disable 옵션 timing: 요청이 걸린 시간 표시 TRUE
#tableon|#tableoff enable/disable 옵션 tableView: 결과 집합을 테이블로 서식 지정 TRUE
#marson|#marsoff enable/disable 옵션 marsView: 두 번째에서 마지막 결과 집합 표시 FALSE
#resultson|#resultsoff enable/disable 옵션 outputResultsSet: 결과 집합 표시 TRUE
#prettyon|#prettyoff enable/disable 옵션 prettyErrors: 오류 정리 TRUE
#markdownon|#markdownoff enable/disable 옵션 markdownView: 테이블 서식을 MarkDown으로 지정 FALSE
#progressiveon|#progressiveoff enable/disable 옵션 progressiveView: 점진적 결과 요청 및 표시 FALSE
#linemode|#blockmode enable/disable 옵션 lineMode: 한 줄 입력 모드 TRUE
명령 효과 Default
#cridon|#cridoff (enable|disable 옵션 crid: 요청을 보내기 전에 ClientRequestId 표시) FALSE
#csvheaderson|#csvheadersoff (enable|disable 옵션 csvHeaders: CSV 출력에 헤더 포함) TRUE
#focuson|#focusoff (enable|disable 옵션 focus: 모든 추가 보풀을 제거하고 올바른 항목에 집중) FALSE
#linemode|#blockmode (enable|disable 옵션 lineMode: 한 줄 입력 모드) TRUE
#markdownon|#markdownoff (enable|disable 옵션 markdownView: 테이블 서식을 MarkDown으로 지정) FALSE
#marson|#marsoff (enable|disable 옵션 marsView: 두 번째에서 마지막 결과 집합 표시) FALSE
#prettyon|#prettyoff (enable|disable 옵션 prettyErrors: 오류 정리) TRUE
#querystreamingon|#querystreamingoff (enable|disable 옵션 queryStreaming: queryStreaming 엔드포인트 사용(Kusto 팀에만 해당) FALSE
#resultson|#resultsoff (enable|disable 옵션 outputResultsSet: 결과 집합 표시) TRUE
#tableon|#tableoff (enable|disable 옵션 tableView: 결과 집합을 테이블로 서식 지정) TRUE
#timeon|#timeoff (enable|disable 옵션 timing: 요청이 걸린 시간 표시) TRUE
#typeon|#typeoff (enable|disable 옵션 typeView: 테이블 뷰에서 각 열의 형식을 표시합니다. Forces Streaming=true) TRUE
#v2protocolon|#v2protocoloff (enable|disable 옵션 v2protocol: v1이 아닌 v2 쿼리 프로토콜 사용) TRUE

Kusto.Cli를 사용하여 결과를 CSV로 내보내기

Kusto.Cli에는 CSV 형식의 로컬 파일로 다음 쿼리 결과를 내보내는 특수 클라이언트 쪽 명령 #save 이 있습니다. 예를 들어 다음 줄은 테이블에서 10가지 레코드를 StormEvents 클러스터, Samples 데이터베이스로 help.kusto.windows.net 내보냅니다.

Kusto.Cli.exe @help/Samples -execute:"#save c:\temp\test.log" -execute:"StormEvents | take 10"

Kusto.Cli를 사용하여 Kusto.Explorer 실행 중인 instance 제어

Kusto.Cli에 컴퓨터에서 실행되는 Kusto.Explorer "기본" instance 통신하고 쿼리를 보내도록 지시할 수 있습니다. 이 메커니즘은 여러 쿼리를 실행하려고 하지만 Kusto를 시작하지 않으려는 프로그램에 유용할 수 있습니다. Explorer 반복적으로 처리합니다. 다음 예제에서는 Kusto.Cli를 사용하여 도움말 클러스터에 대해 쿼리를 실행합니다.

#connect cluster('help').database('Samples')

#ke StormEvents | count

구문은 간단합니다 #ke. , 공백, 실행할 쿼리가 뒤따릅니다. 쿼리는 Kusto.cli에서 현재 클러스터/데이터베이스가 설정된 Kusto.Explorer 기본 instance 전송됩니다(있는 경우).