시스템 테이블을 사용하여 계정 활동 모니터링
이 문서에서는 Azure Databricks의 시스템 테이블 개념을 설명하고 시스템 테이블 데이터를 최대한 활용하는 데 사용할 수 있는 리소스를 강조 표시합니다.
시스템 테이블이란?
시스템 테이블은 system
카탈로그에 있는 계정 운영 데이터의 Azure Databricks에 호스트된 분석 저장소입니다. 시스템 테이블은 계정 전체에서 기록 관찰에 사용할 수 있습니다.
참고 항목
system.information_schema
에 대한 자세한 내용은 정보 스키마를 참조하세요.
요구 사항
시스템 테이블에 액세스하려면 Unity Catalog에 대해 작업 영역을 사용해야 합니다. 자세한 내용은 시스템 테이블 스키마 사용을 참조하세요.
시스템 테이블은 다음 지역에서 사용할 수 없습니다.
- Azure 중국 지역
- Azure Government 지역
- 인도 서부
- 스위스 서부
사용할 수 있는 시스템 테이블은 무엇인가요?
현재 Azure Databricks는 다음 시스템 테이블을 호스트합니다.
테이블 | 설명 | 위치 | 스트리밍 지원 | 뮤료 보존 기간 | 글로벌 또는 지역 데이터 포함 |
---|---|---|---|---|---|
감사 로그(공개 미리 보기) | 해당 지역의 작업 영역에서 모든 감사 이벤트에 대한 레코드를 포함합니다. 사용 가능한 감사 이벤트 목록은 진단 로그 참조를 참조하세요. | system.access.audit |
예 | 365일 | 작업 영역 수준 이벤트의 경우 지역. 계정 수준 이벤트의 경우 글로벌. |
테이블 계보(공개 미리 보기) | Unity Catalog 테이블 또는 경로에서 각 읽기 또는 쓰기 이벤트에 대한 레코드를 포함합니다. | system.access.table_lineage |
예 | 365일 | 지역 |
열 계보(공개 미리 보기) | Unity Catalog 열의 각 읽기 또는 쓰기 이벤트에 대한 레코드를 포함합니다(소스가 없는 이벤트는 포함하지 않음). | system.access.column_lineage |
예 | 365일 | 지역 |
청구 가능한 사용량 | 계정에서 청구 가능한 모든 사용량에 대한 레코드를 포함합니다. | system.billing.usage |
예 | 365일 | 전역 |
가격 | SKU 가격 책정에 대한 기록 로그. SKU 가격이 변경될 때마다 레코드가 추가됩니다. | system.billing.list_prices |
아니요 | 제한 없음 | 전역 |
클러스터(공개 미리 보기) | 모든 클러스터에 대한 시간 경과에 따른 컴퓨팅 구성의 전체 기록을 포함하는 느린 변경 차원 테이블입니다. | system.compute.clusters |
예 | 해당 없음 | 지역 |
노드 타임라인(공개 미리 보기) | 모든 용도 및 작업 컴퓨팅 리소스의 사용률 메트릭을 캡처합니다. | system.compute.node_timeline |
예 | 30일 | 지역 |
노드 유형(공개 미리 보기) | 기본 하드웨어 정보와 함께 현재 사용 가능한 노드 유형을 캡처합니다. | system.compute.node_types |
아니요 | 해당 없음 | 지역 |
SQL 웨어하우스 (공개 미리 보기) | 모든 SQL 웨어하우스에 대한 시간 경과에 따른 구성의 전체 기록을 포함합니다. | system.compute.warehouses |
예 | 365일 | 지역 |
SQL 웨어하우스 이벤트(공개 미리 보기) | SQL 웨어하우스와 관련된 이벤트를 캡처합니다. 예를 들어 시작, 중지, 실행, 확장 및 축소가 이에 해당합니다. | system.compute.warehouse_events |
예 | 365일 | 지역 |
작업(공개 미리 보기) | 계정에서 만든 모든 작업을 추적합니다. | system.lakeflow.jobs |
예 | 365일 | 지역 |
작업 태스크(공개 미리 보기) | 계정에서 실행되는 모든 작업 태스크를 추적합니다. | system.lakeflow.job_tasks |
예 | 365일 | 지역 |
작업 실행 타임라인(공개 미리 보기) | 작업 실행의 시작 및 종료 시간을 추적합니다. | system.lakeflow. job_run_timeline |
예 | 365일 | 지역 |
작업 태스크 타임라인(공개 미리 보기) | 작업 실행에 사용되는 시작 및 종료 시간과 컴퓨팅 리소스를 추적합니다. | system.lakeflow. job_task_run_timeline |
예 | 365일 | 지역 |
마켓플레이스 유입 경로 이벤트(공개 미리 보기) | 목록에 대한 소비자의 의견 및 유입 경로 데이터를 포함합니다. | system.marketplace.listing_ funnel_events |
예 | 365일 | 지역 |
마켓플레이스 목록 액세스(공개 미리 보기) | 완료된 요청 데이터에 대한 소비자 정보 또는 목록의 데이터 가져오기 이벤트를 포함합니다. | system.marketplace.listing_ access_events |
예 | 365일 | 지역 |
예측 최적화(공개 미리 보기) | 예측 최적화 기능의 운영 기록을 추적합니다. | system.storage.predictive_ optimization_operations_history |
아니요 | 180일 | 지역 |
Databricks 도우미 이벤트(공개 미리 보기) | Databricks Assistant로 전송된 사용자 메시지를 추적합니다. | system.access.assistant_events |
아니요 | 365일 | 지역 |
쿼리 기록(공개 미리 보기) | SQL 웨어하우스에서 실행되는 모든 쿼리에 대한 레코드를 캡처합니다. | system.query.history |
예 | 90일 | 지역 |
클린룸 이벤트(공개 미리 보기) | 클린룸과 관련된 이벤트를 캡처합니다. | system.access.clean_room_events |
예 | 365일 | 지역 |
모델 지원 엔드포인트 사용량(공개 미리 보기) | 모델 지원 엔드포인트에 대한 각 요청 및 해당 응답에 대한 토큰 수를 캡처합니다. 이 테이블에서 엔드포인트 사용량을 캡처하려면 서비스 엔드포인트에서 사용량 추적을 사용하도록 설정해야 합니다. |
system.serving.endpoint_usage . |
예 | 90일 | 지역 |
모델 지원 엔드포인트 데이터(공개 미리 보기) | 모델 지원 엔드포인트에서 지원되는 각 외부 모델에 대한 메타데이터를 저장하는 느린 변경 차원 테이블입니다. | system.serving.served_entities |
예 | 365일 | 지역 |
네트워크 액세스 이벤트(공개 미리 보기) | 계정에서 인터넷 액세스가 거부될 때마다 이벤트를 기록하는 테이블입니다. | system.access.outbound_network |
예 | 365일 | 지역 |
청구 가능한 사용량 및 가격 책정 테이블은 무료로 사용할 수 있습니다. 공개 미리 보기의 테이블도 미리 보기 중에 무료로 사용할 수 있지만 나중에 요금이 부과될 수 있습니다.
참고 항목
위에 나열된 테이블 외에 계정에서 다른 시스템 테이블이 표시될 수 있습니다. 이러한 테이블은 현재 프라이빗 미리 보기로 제공되며 기본값으로 비어 있습니다. 이러한 테이블을 사용하려면 Databricks 계정 팀에 문의하세요.
시스템 테이블 스키마 사용
시스템 테이블은 Unity Catalog에 의해 관리되므로 시스템 테이블을 사용하고 시스템 테이블에 액세스하려면 계정에 하나 이상의 Unity Catalog 기반 작업 영역이 필요합니다. 시스템 테이블에는 계정에서 모든 작업 영역의 데이터가 포함되지만 Unity Catalog 기반 작업 영역에서만 액세스할 수 있습니다.
시스템 테이블은 스키마 수준에서 사용됩니다. 시스템 스키마를 사용하면 해당 스키마 내 모든 테이블을 사용합니다. 새 스키마가 릴리스되면 계정 관리자가 스키마를 수동으로 사용해야 합니다.
시스템 테이블은 계정 관리자가 사용하도록 설정해야 합니다. Databricks CLIsystem-schemas
명령을 사용하거나 SystemSchemas API사용하여 시스템 테이블을 사용하도록 설정할 수 있습니다.
참고 항목
billing
스키마는 기본값으로 사용됩니다. 다른 스키마는 수동으로 사용해야 합니다.
사용 가능한 스키마 나열
다음 curl 명령을 사용하여 사용 가능한 시스템 스키마를 나열하세요.
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
다음은 GET
명령의 출력 예제입니다.
{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}
state: AVAILABLE
: 시스템 스키마를 사용할 수 있지만 아직 사용하도록 설정되지 않았습니다.
state: EnableCompleted
: 시스템 스키마를 사용하도록 설정했으며 카탈로그 탐색기에 표시됩니다.
시스템 스키마 사용
다음 curl 명령을 사용하여 시스템 스키마를 사용하도록 설정하세요.
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
시스템 스키마를 사용하도록 설정하면 200
의 결과 코드가 반환됩니다.
시스템 스키마를 다시 사용하도록 설정하려고 하면 "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"
가 반환됩니다.
시스템 스키마 사용 중지
다음 curl 명령을 사용하여 시스템 스키마를 사용 중지합니다.
curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
시스템 테이블에 대한 액세스 권한 부여
시스템 테이블에 대한 액세스는 Unity Catalog에 의해 제어됩니다. 기본값으로 이러한 시스템 스키마에 액세스할 수 있는 사용자는 없습니다. 액세스 권한을 부여하려면 메타스토어 관리자이자 계정 관리자인 사용자가 시스템 스키마에서 USE
및 SELECT
권한을 부여해야 합니다.
Unity Catalog에서 권한 관리를 참조하세요.
시스템 테이블은 읽기 전용이며 수정할 수 없습니다.
참고 항목
계정이 2023년 11월 9일 이후에 만들어진 경우 기본적으로 메타스토어 관리자가 없을 수 있습니다. 자세한 내용은 Unity Catalog 설정 및 관리를 참조하세요.
시스템 테이블에 계정의 모든 작업 영역에 대한 데이터가 포함되나요?
시스템 테이블에는 동일한 클라우드 지역 내에 배포된 계정의 모든 작업 영역에 대한 운영 데이터가 포함됩니다. 청구 시스템 테이블에는 계정 전체 데이터가 포함됩니다.
시스템 테이블은 Unity 카탈로그 작업 영역을 통해서만 액세스할 수 있지만, 테이블에는 계정의 비Unity 카탈로그 작업 영역에 대한 작동 데이터도 포함됩니다.
시스템 테이블 데이터는 어디에 저장되어 있나요?
계정의 시스템 테이블 데이터는 메타스토어와 동일한 지역에 있는 Azure Databricks 호스팅 스토리지 계정에 저장됩니다. 데이터는 Delta Sharing을 통해 안전하게 공유됩니다.
각 테이블에는 무료 데이터 보존 기간이 있습니다. 보존 기간 연장에 대한 자세한 내용은 Azure Databricks 계정 팀에 문의하세요.
카탈로그 탐색기에서 시스템 테이블은 어디에 있나요?
계정의 시스템 테이블은 모든 Unity Catalog 메타스토어에 포함된 system
카탈로그에 있습니다.
system
카탈로그에서 시스템 테이블이 포함된 access
및 billing
과 같은 스키마가 표시됩니다.
스트리밍 시스템 테이블에 대한 고려 사항
Azure Databricks는 Delta Sharing을 사용하여 고객과 시스템 테이블 데이터를 공유합니다. Delta Sharing을 사용하여 스트리밍할 때 다음과 같은 사항을 고려해야 합니다.
- 시스템 테이블과 함께 스트리밍을 사용하는 경우
skipChangeCommits
옵션을true
로 설정합니다. 이렇게 하면 스트리밍 작업이 시스템 테이블의 삭제에서 중단되지 않습니다. 업데이트 무시 및 삭제를 참조하세요. -
Trigger.AvailableNow
는 Delta Sharing 스트리밍에서 지원되지 않습니다.Trigger.Once
로 변환됩니다.
스트리밍 작업에서 트리거를 사용하고 최신 시스템 테이블 버전을 따라잡지 못하는 경우 Databricks는 작업의 예약된 빈도를 늘리도록 권장합니다.
스트리밍 시스템 테이블에서 증분 변경 내용 읽기
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
알려진 문제
현재 실시간 모니터링이 지원되지 않습니다. 데이터는 하루 종일 업데이트됩니다. 최근 이벤트에 대한 로그가 표시되지 않으면 나중에 다시 검사합니다.
시스템 테이블을 사용하도록 설정하려면 시스템 테이블 Blob Storage 엔드포인트에 대한 네트워크 액세스 권한을 부여해야 할 수 있습니다. 모든 지역의 시스템 테이블 스토리지 엔드포인트 목록을 보려면 스토리지 엔드포인트 IP 주소를 참조하세요.
시스템 스키마
system.operational_data
및system.lineage
는 더 이상 사용되지 않으며 빈 테이블을 포함합니다.__internal_logging
시스템 테이블 스키마는 유추 테이블을 사용하는 페이로드 로깅을 지원하는 데 사용됩니다. 이 스키마는 계정 관리자에게 표시되지만, 사용하도록 설정할 수 없으며 고객 워크플로에 사용하면 안 됩니다.