다음과 같은 방법으로 Azure Data Explorer Kusto 에뮬레이터를 설치할 수 있습니다.
- 사용자 고유의 디바이스에서: 로컬 개발 환경을 프로비전해야 하는 경우 이 옵션을 사용하는 것이 좋습니다.
- CI/CD 에이전트 VM(가상 머신): 자동화된 테스트를 실행하기 위해 CI/CD 파이프라인이 필요한 경우 이 옵션을 사용합니다.
에뮬레이터는 Linux Docker 컨테이너 이미지로 사용할 수 있습니다.
이 문서에서는 다음 방법을 알아봅니다.
이 문서에서는 Windows 클라이언트에 Linux Docker 컨테이너를 설치하는 방법에 중점을 둡니다.
필수 조건
- 호스트 운영 체제는 다음 중 하나여야 합니다.
- 윈도우 서버 2022
- Windows Server 2019 버전 10.0.17763.2928 이상
- 윈도우 11
- Linux용 Docker 클라이언트를 지원하는 모든 Linux 배포
- SSE4.2/AVX2 명령 집합을 지원하는 프로세서
- 2GB 이상의 RAM(4GB 이상 권장)
- Linux용 Docker 클라이언트 또는 Windows용 Docker 클라이언트
중요합니다
Linux 배포판은 Linux 컨테이너 이미지만 지원합니다. ARM 프로세서는 지원되지 않습니다.
Kusto 에뮬레이터 설치
다음 단계는 셸을 사용하여 Kusto 에뮬레이터 컨테이너 이미지를 사용하여 에뮬레이터를 시작하는 것입니다. 다른 옵션은 에뮬레이터 실행 옵션을 참조하세요.
다음 명령을 실행하여 에뮬레이터를 시작합니다.
중요합니다
Kusto 에뮬레이터 컨테이너 이미지는 Microsoft 소프트웨어 사용 조건에 따라 무료로 제공됩니다. 에뮬레이터는 컨테이너에서 실행되므로 값이
ACCEPT_EULA설정된 컨테이너에Y환경 변수를 전달하여 사용 조건에 동의해야 합니다.참고
- 이 명령을 처음 실행할 때 Docker는 크기가 여러 GB인 컨테이너 이미지를 끌어오고 다운로드하는 데 몇 분 정도 걸릴 수 있습니다. 다운로드가 완료되면 이미지가 캐시되어 다시 다운로드하지 않고도 후속 실행에 사용할 수 있습니다.
Linux 컨테이너를 시작하려면
latest또는stable태그를 사용해야 합니다.docker run -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest다음 명령을 실행하여 컨테이너가 실행 중인지 확인합니다.
docker ps이 명령은 실행 중인 컨테이너 인스턴스 목록을 반환합니다. 에뮬레이터 이미지 mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest 목록에 표시되는지 확인합니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a8b51bce21ad mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest "powershell -Command¦" 11 minutes ago Up 10 minutes 0.0.0.0:8080->8080/tcp contoso다음 명령을 실행하여 Kusto 에뮬레이터가 실행 중인지 확인합니다. 이 명령은 PowerShell용으로, Linux 환경에서 비슷한
curl작업을 수행할 수 있습니다. 이 명령은 관리 API에 대해 쿼리를 실행.show cluster하며 값이 200인 StatusCode를 반환해야 합니다.Invoke-WebRequest -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt명령은 다음과 같은 항목을 반환해야 합니다.
StatusCode : 200 StatusDescription : OK Content : {"Tables":[{"TableName":"Table_0","Columns":[{"ColumnName":"NodeId","DataType":"String","ColumnType":"string"},{"ColumnName":"Address","DataType":"St ring","ColumnType":"string"},{"ColumnName":"Name","... RawContent : HTTP/1.1 200 OK Transfer-Encoding: chunked x-ms-client-request-id: unspecified;d239f3aa-7df0-4e46-af0a-edd7139d0511 x-ms-activity-id: a0ac8941-7e4c-4176-98fa-b7ebe14fae90 Content-Type: application... Forms : {} Headers : {[Transfer-Encoding, chunked], [x-ms-client-request-id, unspecified;d239f3aa-7df0-4e46-af0a-edd7139d0511], [x-ms-activity-id, a0ac8941-7e4c-4176-98fa-b7ebe14fae90], [Content-Type, application/json]...} Images : {} InputFields : {} Links : {} ParsedHtml : System.__ComObject RawContentLength : 988
에뮬레이터 옵션 실행
에뮬레이터를 실행할 때 다음 옵션 중 하나를 사용할 수 있습니다.
컨테이너에 로컬 폴더 탑재: 호스트 환경의 폴더를 컨테이너에 탑재하려면 이 옵션을 사용합니다. 호스트 폴더를 탑재하면 쿼리가 로컬 파일과 상호 작용할 수 있으므로 컨테이너 실행과 데이터 수집간에 데이터베이스를 영구적으로 만드는 데 유용합니다.
예를 들어 호스트의 "D:\host\local" 폴더를 컨테이너의 "/kustodatadata" 폴더에 탑재하려면 Windows Server에서 다음 명령을 사용합니다.
docker run -v d:\host\local:/kustodata -e ACCEPT_EULA=Y -m 4G -d -p 8080:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest다른 포트에서 실행: Kusto 에뮬레이터는 포트 8080에서 Kusto 쿼리 엔진에 대한 액세스를 노출합니다. 따라서 다른 예에서는 호스트 포트 8080을 에뮬레이터 포트 8080에 매핑했습니다. 이 옵션을 사용하여 다른 호스트를 엔진에 매핑할 수 있습니다.
예를 들어, 호스트의 포트 9000을 엔진에 매핑하려면 Windows Server에서 다음 명령을 사용합니다.
docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer-linux:latest
에뮬레이터에 연결
다음 도구 중 하나를 사용하여 에뮬레이터에 연결하고 상호 작용할 수 있습니다.
다음 섹션에서는 Kusto.Explorer를 사용하여 데이터베이스를 만들고, 데이터를 수집하고, 쿼리합니다. 자세한 내용은 Kusto.Explorer 사용을 참조하세요.
중요합니다
Kusto 에뮬레이터는 HTTPS 또는 Microsoft Entra 인증을 지원하지 않습니다.
먼저 도구>옵션> 연결에서 안전하지 않은 연결을 허용하여안전하지 않은 연결을> 허용해야 합니다.
다음 이미지는 연결 추가 속성의 영향을 받는 필드를 강조 표시합니다.
-
클러스터 연결은
http://로 시작해야 하며,https://로 시작해서는 안 됩니다. -
보안>고급: 연결 문자열에서 연결 문자열의 일부를 제거
AAD Federated Security=True하여 Microsoft Entra 인증을 사용하지 않도록 설정해야 합니다.
데이터베이스 만들기
데이터를 저장하고 쿼리를 실행하려면 데이터베이스를 만들거나 에뮬레이터를 기존 데이터베이스에 연결합니다.
데이터베이스는 컨테이너 폴더 또는 탑재된 폴더에 유지할 수 있습니다. 전자의 수명은 컨테이너에 바인딩되므로 컨테이너를 다시 시작하면 변경 내용이 손실됩니다. 또한 컨테이너 가상 스토리지는 네이티브 스토리지보다 효율성이 떨어집니다. 탑재된 폴더를 사용하면 컨테이너 실행 간에 데이터를 유지할 수 있습니다.
이 예제에서는 컨테이너에 데이터를 유지합니다.
Kusto.Explorer 쿼리 모드에서 다음 명령을 실행하여 영구 데이터베이스를 만듭니다.
.create database <YourDatabaseName> persist (
@"/kustodata/dbs/<YourDatabaseName>/md",
@"/kustodata/dbs/<YourDatabaseName>/data"
)
이 명령을 사용하려면 기존 정보를 과도하게 쓰는 것을 방지하기 위해 폴더가 아직 존재하지 않도록 해야 합니다. 기존 데이터베이스에 연결하려면 다음 명령을 대신 사용하여 다음으로 끝나는 md경로를 지정합니다.
.attach database <YourDatabaseName> from @"<PathToMdFolder>"
에뮬레이터에서 데이터베이스를 분리할 수도 있습니다. 그러면 모든 데이터베이스 메타데이터와 데이터가 그대로 유지되므로 나중에 다시 연결할 수 있습니다.
.detach database <YourDatabaseName>
데이터 수집
데이터를 수집하려면 먼저 파일에 연결된 외부 테이블을 만든 다음 데이터를 데이터베이스의 테이블로 수집해야 합니다.
다음 예의 단계에서 외부 테이블을 만들고 데이터를 수집합니다. 예제의 일부로 다음 데이터를 사용하여 로컬 폴더 sample.csv에 호출 된 파일을 만듭니다.
Alice, 1
Bob, 2
Carl, 3
다음 명령을 실행하여 데이터를 받을 테이블을 만듭니 다.
.create table MyIngestedSample(Name:string, Id:int)다음 명령을 실행하여 테이블에 파일을 수집합니다.
.ingest into table MyIngestedSample(@"/kustodata/sample.csv")
쿼리 데이터
다음 쿼리를 사용하여 테이블의 데이터를 볼 수 있습니다.
MyIngestedSample
| summarize sum(Id), avg(Id)
컨테이너 중지
컨테이너 ID를 가져오기 위해 다음 명령을 실행하여 컨테이너를 중지할 수 있습니다.
docker ps컨테이너 ID로 다음 명령을 실행합니다.
docker stop <containerID>