이벤트 테이블 열¶
이벤트 테이블 은 미리 정의된 열 집합이 있는 특별한 종류의 데이터베이스 테이블입니다. 이 테이블의 구조는 원격 분석 데이터를 처리하기 위한 프레임워크인 OpenTelemetry 의 데이터 모델을 지원하도록 설계되었습니다.
이벤트 테이블을 사용한 작업에 대한 자세한 내용은 이벤트 테이블 관련 작업하기 섹션을 참조하십시오.
이벤트 테이블 열¶
이벤트 테이블에는 다음 열이 있습니다.
열 |
데이터 타입 |
설명 |
---|---|---|
TIMESTAMP_NTZ |
이벤트가 생성된 UTC 타임스탬프입니다. 시간 범위를 나타내는 이벤트의 경우 이것은 시간 범위의 끝입니다. |
|
TIMESTAMP_NTZ |
추적 이벤트와 같이 시간 범위를 나타내는 이벤트의 경우 시간 범위의 시작은 UTC 타임스탬프로 표시됩니다. |
|
TIMESTAMP_NTZ |
로그에 사용되는 UTC 시간입니다. 현재는 TIMESTAMP과 동일한 값입니다. |
|
OBJECT |
모든 신호 유형에 대한 추적 컨텍스트입니다. 문자열 값 |
|
OBJECT |
향후 사용을 위해 예약되어 있습니다. |
|
OBJECT |
데이터베이스, 스키마, 사용자, 웨어하우스 등과 같은 이벤트의 원본을 식별하는 특성입니다. |
|
OBJECT |
이벤트의 범위입니다. 예를 들어 로그의 클래스 이름입니다. |
|
OBJECT |
향후 사용을 위해 예약되어 있습니다. |
|
STRING |
이벤트 유형입니다. 다음 중 하나:
|
|
OBJECT |
RECORD 열 에 설명된 대로 각 레코드 유형의 고정 값입니다. |
|
OBJECT |
RECORD_ATTRIBUTES 열 에 설명된 대로 각 레코드 유형에 대한 변수 특성입니다. |
|
VARIANT |
기본 이벤트 값입니다. |
|
ARRAY |
향후 사용을 위해 예약되어 있습니다. |
이벤트 유형별로 캡처된 데이터¶
로그의 데이터¶
속성 |
설명 |
---|---|
현재는 TIMESTAMP과 동일한 값입니다. |
|
로그 이벤트 에 의해 기록된 심각도 수준입니다. |
|
로그 이벤트를 내보낸 코드의 위치입니다. 값은 언어별로 다르지만 코드 파일 경로, 함수 이름, 줄 번호 등을 포함할 수 있습니다. |
|
이벤트 유형: 로그 메시지의 경우 |
|
데이터베이스, 스키마, 사용자, 웨어하우스 등과 같은 이벤트의 원본을 식별하는 특성입니다. |
|
로그 이벤트가 생성된 클래스의 이름과 같이, 이벤트가 발생한 범위입니다. |
|
이벤트가 생성된 시점의 타임스탬프입니다. |
|
로그 메시지입니다. |
메트릭을 위한 데이터¶
참고
메트릭 데이터 수집은 모든 계정에서 사용할 수 있는 미리 보기 기능입니다.
속성 |
설명 |
---|---|
메트릭 이벤트의 경우 메트릭의 이름과 단위를 포함하는 오브젝트입니다. |
|
이벤트 유형: 데이터 요소의 경우 |
|
데이터베이스, 스키마, 사용자 또는 웨어하우스와 같은 이벤트의 원본을 식별하는 특성입니다. |
|
RECORD 열 |
|
이벤트가 생성된 시점의 타임스탬프입니다. |
|
메트릭의 숫자 값입니다. |
추적 이벤트의 데이터¶
속성 |
설명 |
---|---|
이벤트 유형: 범위의 경우 |
|
데이터베이스, 스키마, 사용자, 웨어하우스 등과 같은 이벤트의 원본을 식별하는 특성입니다. |
|
범위의 경우 범위가 시작된 시간입니다. 범위 이벤트에는 사용되지 않습니다. |
|
이벤트가 생성된 시점의 타임스탬프입니다. |
|
범위와 그 안의 범위 이벤트에 대한 식별자 |
EXEMPLARS 열¶
향후 사용을 위해 예약되어 있습니다.
OBSERVED_TIMESTAMP 열¶
로그의 UTC 타임스탬프입니다. 추적 이벤트에는 사용되지 않습니다.
RECORD 열¶
이벤트에 대한 핵심 정보를 제공하고 로그 이벤트의 로그 수준 또는 추적 이벤트의 이름(범위 또는 범위 이벤트 레코드)을 포함합니다.
레코드에 대한 특성이 있는 경우 RECORD_ATTRIBUTES 열 에 기록됩니다.
이 열에 포함된 값은 다음 섹션에 설명된 대로 RECORD_TYPE 열 (LOG
, SPAN
또는 SPAN_EVENT
)의 값에 따라 달라집니다.
LOG
RECORD_TYPE의 경우¶
RECORD_TYPE 열 값이 LOG
인 경우 RECORD 열 값에는 로그 메시지의 심각도가 포함됩니다. 열 값에는 다음 키가 포함될 수 있습니다.
키 |
타입 |
설명 |
---|---|---|
|
STRING |
로그 심각도 텍스트입니다. 다음 중 하나:
로그 항목이 처리되지 않은 예외 에 대한 것인 경우 이 값은 현재 언어 런타임에 대해 심각도가 가장 높은 오류 수준입니다. 예를 들어, Python으로 작성된 코드의 경우 이 값은 |
예¶
{
"severity_text": "INFO"
}
METRIC
RECORD_TYPE의 경우¶
참고
메트릭 데이터 수집은 모든 계정에서 사용할 수 있는 미리 보기 기능입니다.
메트릭은 CPU 및 Snowflake에서 생성된 메모리 데이터입니다. 이 데이터를 사용하여 리소스 사용량을 분석할 수 있습니다.
실행 처리기 언어와 그 환경은 메트릭 데이터의 의미에 상당한 영향을 미칩니다. 자세한 내용은 처리기 코드에서 메트릭 데이터 내보내기 섹션을 참조하십시오.
키 |
타입 |
설명 |
---|---|---|
|
문자열 |
행에 기록된 메트릭의 이름입니다. 다음 중 하나:
자세한 내용은 처리기 코드에서 메트릭 데이터 내보내기 섹션을 참조하십시오. |
|
문자열 |
미터법의 단위로, 예를 들어 |
|
문자열 |
메트릭 데이터의 |
|
문자열 |
VALUE 열에서 값의 데이터 타입으로, 예를 들어 |
예¶
{
"metric": {
"name": "process.memory.usage",
"unit": "bytes"
},
"metric_type": "sum",
"value_type": "INT"
}
SPAN
RECORD_TYPE의 경우¶
범위는 함수와 프로시저의 개별 실행을 나타냅니다. 저장 프로시저의 경우 단일 범위가 있습니다. 사용자 정의 함수의 경우 Snowflake가 실행 예약 결정을 내리는 방법에 따라 단일 함수 호출에 대해 여러 범위가 있을 수 있습니다.
주어진 쿼리에 대한 모든 범위는 TRACE
열의 trace_id
키에 대해 값이 동일합니다.
범위의 지속 시간은 start_timestamp
열의 값과 timestamp
열의 값 사이의 차이로, 각각 범위 실행의 시작 시간과 종료 시간을 나타냅니다.
범위의 ID와 쿼리 추적은 TRACE 열의 값으로 표현됩니다.
Snowflake는 아래에 표시된 키를 사용하여 각 실행에 대해 하나의 범위를 생성합니다.
키 |
타입 |
설명 |
---|---|---|
|
int |
기록된 최대값에 도달한 후 무시되는 특성의 수입니다. |
|
문자열 |
실행 파일의 처리기가 Python으로 작성된 경우, 이는 데이터를 내보내는 함수나 프로시저의 처리기를 식별합니다. 이는 실행 파일 유형에 따라 다르며, 다음과 같습니다.
실행 파일의 처리기가 Python이 아닌 다른 언어로 작성된 경우 고정 값(예: |
|
문자열 |
고정 값 |
|
16진수 문자열 |
현재 추적이 통과한 프로시저 또는 UDF의 범위를 식별합니다. 이 값이 있으면 현재 프로시저 또는 UDF 호출이 호출 체인 관계에 있는 다른 프로시저에 의해 수행되었음을 의미합니다. 해당 “상위” 프로시저의 |
|
문자열 |
선택 사항입니다. 있는 경우, 이 범위의 실행 중에 사용되는 최대 메모리 양(바이트)을 지정합니다. |
|
문자열 |
범위가 처리되지 않은 예외 에 해당할 때는 |
사용자 정의 함수의 경우 Snowflake는 범위에 대한 특성을 추가하여 함수에서 처리하고 내보낸 행의 개수를 나타낼 수 있습니다.
SPAN_EVENT
RECORD_TYPE의 경우¶
범위 이벤트는 위에서 설명한 특정 범위 실행에 연결된 이벤트 레코드입니다. 애플리케이션의 요구 사항에 맞게 이벤트를 만들 수 있습니다. 범위 이벤트의 수는 128개로 제한됩니다.
TRACE 열의 값으로 이벤트가 생성된 범위를 식별할 수 있습니다.
범위 이벤트에는 단일 키 name
이 있으며 RECORD_ATTRIBUTES 열에 추가된 임의의 특성을 가질 수 있습니다.
키 |
타입 |
설명 |
---|---|---|
|
문자열 |
범위 이벤트의 이름입니다. |
RECORD_ATTRIBUTES 열¶
Snowflake 또는 코드에 의해 설정된 메타데이터로 이벤트를 설명합니다. 이 값은 다음 섹션에 설명된 대로 행에 포함된 레코드의 유형에 따라 달라집니다.
LOG
RECORD_TYPE의 경우¶
코드 파일 경로, 함수 이름, 줄 번호 등을 포함하여 로그 이벤트를 내보낸 코드의 위치입니다.
아래 목록에 나열된 특성 외에도 RECORD_ATTRIBUTES 값에 포함할 고유한 특성을 추가할 수 있습니다.
속성 |
타입 |
설명 |
---|---|---|
|
int |
메시지를 생성한 코드가 포함된 파일입니다. |
|
문자열 |
메시지를 생성한 함수의 이름입니다. |
|
int |
메시지를 생성한 코드의 줄 번호입니다. |
|
int |
메시지를 생성한 코드의 네임스페이스입니다. |
|
문자열 |
처리되지 않은 예외 로 인한 오류 메시지입니다. |
|
문자열 |
처리되지 않은 예외 에 대한 클래스 이름입니다. |
|
문자열 |
언어 런타임으로 형식이 지정된 처리되지 않은 예외 의 스택 추적입니다. |
|
boolean |
이 항목이 처리되지 않은 예외 에서 발생한 경우 |
|
int |
로그 이벤트가 생성된 스레드입니다. |
|
문자열 |
로그 이벤트가 생성된 스레드입니다. |
예¶
다음 예제에서는 사용자 지정 특성으로 추가한 employee.id
를 제외한 모든 특성이 Snowflake에 의해 추가되었습니다.
{
"code.filepath": "main.scala",
"code.function": "$anonfun$new$10",
"code.lineno": 149,
"code.namespace": "main.main$",
"thread.id": 1,
"thread.name": "main"
"employee.id": "52307953446424"
}
SPAN
RECORD_TYPE의 경우¶
범위가 기록될 때 범위에 할당된 특성입니다(있는 경우). 특성 이름과 값은 코드 또는 Snowflake에 의해 설정됩니다.
다음 표에는 Snowflake에서 설정할 수 있는 특성이 나와 있습니다.
속성 |
타입 |
설명 |
---|---|---|
|
int |
함수 범위에서 처리되는 입력 행의 수입니다. |
|
int |
함수의 범위에서 성공적으로 처리된 출력 행 수입니다. |
예¶
다음 예제의 코드는 Snowflake에서 설정한 특성을 포함합니다.
{
"snow.input.rows": 12
"snow.output.rows": 12
}
예¶
다음 예제의 코드는 처리기 코드에서 설정한 특성을 포함합니다.
{
"MyFunctionVersion": "1.1.0"
}
SPAN_EVENT
RECORD_TYPE의 경우¶
범위가 기록될 때 범위 이벤트에 할당된 특성입니다(있는 경우). 특성 이름과 값은 Snowflake 또는 사용자 코드에서 설정할 수 있습니다.
예¶
다음 예제의 코드는 처리기 코드에서 설정한 특성을 포함합니다.
{
"mykey1": "value1",
"mykey2": "value2"
}
RECORD_TYPE 열¶
이벤트 테이블 행에서 설명하는 레코드의 종류를 지정합니다. 이 열의 값으로 이벤트 테이블에 데이터가 포함될 수 있는 세 가지 유형의 레코드를 식별할 수 있습니다.
RECORD 열에는 이 레코드의 데이터가 포함됩니다. RECORD_ATTRIBUTES 열에는 이 레코드의 메타데이터가 포함됩니다(있는 경우).
다음 표에는 이 열에 포함될 수 있는 값이 나와 있습니다.
열 값 |
설명 |
---|---|
|
이 행은 처리기 코드에서 생성된 로그 항목을 나타냅니다. |
|
이 행은 범위를 나타냅니다. 저장 프로시저의 경우 단일 범위가 있습니다. 병렬화될 수 있는 사용자 정의 함수의 경우 함수가 실행되는 각 스레드의 범위가 있습니다. 스레드 수는 함수가 실행되는 Snowflake 웨어하우스의 크기를 비롯한 여러 요인에 따라 달라집니다. 범위는 여러 범위 이벤트를 포함할 수 있습니다. 자세한 내용은 기록된 범위 데이터 섹션을 참조하십시오. |
|
이 행은 범위 이벤트를 나타냅니다. 특정 범위에 연결된 여러 범위 이벤트 레코드일 수 있습니다. 처리기 코드는 필요에 맞는 이벤트를 생성할 수 있습니다. 범위 이벤트의 수는 128개로 제한됩니다. |
|
행은 메트릭의 관측값을 나타냅니다. 여러 메트릭에 대한 여러 관측값을 특정 범위에 연결할 수 있습니다. |
RESOURCE 열¶
향후 사용을 위해 예약되어 있습니다.
RESOURCE_ATTRIBUTES 열¶
Snowflake 오브젝트 측면에서 이벤트의 원본을 설명합니다.
이 열의 값을 구성하는 특성은 Snowflake에 의해 설정되며 변경할 수 없습니다.
이벤트 소스의 리소스 특성¶
속성 이름 |
특성 유형 |
설명 |
예 |
---|---|---|---|
|
int |
실행 파일을 포함하는 데이터베이스의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
실행 파일이 포함된 데이터베이스의 이름입니다. |
|
|
int |
이벤트를 생성하는 실행 파일(프로시저, 함수, SnowService 등)의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
이벤트를 생성하는 실행 파일의 이름입니다. 예를 들어, 이는 프로시저, 함수 또는 Streamlit 앱의 이름일 수 있습니다. |
|
|
문자열 |
실행 가능한 언어의 런타임 버전입니다. 이는 아래 설명과 같이 언어에 특정한 값입니다.
|
|
|
문자열 |
다음 중 하나:
|
|
|
int |
실행 파일에 대한 OWNERSHIP 권한이 있는 역할의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
실행 파일에 대한 OWNERSHIP 권한이 있는 역할의 이름입니다. |
|
|
int |
실행 파일을 포함하는 스키마의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
실행 파일을 포함하는 스키마의 이름입니다. |
|
|
문자열 |
리소스/SDK의 언어입니다. Snowflake는 Java, Scala, Python, Javascript, SQL을 사용합니다. |
|
실행 환경의 리소스 특성¶
속성 |
타입 |
설명 |
예 |
---|---|---|---|
|
문자열 |
함수 또는 프로시저의 경우 함수나 프로시저를 실행하는 사용자의 이름입니다. Streamlit 앱의 경우 특정 이벤트 동안 앱을 보고 있던 사용자의 이름입니다. |
|
|
문자열 |
쿼리의 ID입니다. |
|
|
문자열 |
이벤트가 생성되었을 때 실행 중인 Snowflake 릴리스입니다. |
|
|
int |
실행 파일을 실행하는 세션의 ID입니다. |
|
|
int |
세션에서 기본 역할의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
세션에서 기본 역할의 이름입니다. |
|
|
int |
쿼리를 실행하는 사용자의 내부/시스템 생성 식별자입니다. |
|
|
int |
이벤트를 생성하는 쿼리를 실행하는 웨어하우스의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
이벤트를 생성하는 쿼리를 실행하는 웨어하우스의 이름입니다. |
|
애플리케이션의 리소스 특성¶
속성 |
타입 |
설명 |
예 |
---|---|---|---|
|
문자열 |
Snowflake Native App 에 대한 컨슈머 계정의 이름입니다. |
|
|
문자열 |
Snowflake Native App 에 대한 컨슈머 조직의 이름입니다. |
|
|
문자열 |
Snowflake Native App 에 대한 앱의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
Snowflake Native App 에 대한 앱의 이름입니다. |
|
|
문자열 |
Snowflake Native App 에 대한 애플리케이션 패키지의 이름입니다. |
|
|
문자열 |
Snowflake Native App 에 대한 목록의 내부/시스템 생성 식별자입니다. |
|
|
문자열 |
Snowflake Native App 에 대한, 목록의 이름입니다. |
|
Snowflake 버전의 리소스 특성¶
속성 |
타입 |
설명 |
예 |
---|---|---|---|
|
문자열 |
관련이 있는 경우 실행 파일의 버전입니다. |
|
|
문자열 |
실행 중인 실행 파일의 패치 수준입니다. |
|
|
문자열 |
실행 중인 실행 파일의 버전입니다. |
|
예¶
{
"db.user": "MYUSERNAME",
"snow.database.id": 13,
"snow.database.name": "MY_DB",
"snow.executable.id": 197,
"snow.executable.name": "FUNCTION_NAME(I NUMBER):ARG_NAME(38,0)",
"snow.executable.type": "FUNCTION",
"snow.owner.id": 2,
"snow.owner.name": "MY_ROLE",
"snow.query.id": "01ab0f07-0000-15c8-0000-0129000592c2",
"snow.schema.id": 16,
"snow.schema.name": "PUBLIC",
"snow.session.id": 1275605667850,
"snow.session.role.primary.id": 2,
"snow.session.role.primary.name": "MY_ROLE",
"snow.user.id": 25,
"snow.warehouse.id": 5,
"snow.warehouse.name": "MYWH",
"telemetry.sdk.language": "python"
}
SCOPE 열¶
로그 이벤트의 경우 이벤트를 내보낸 코드의 네임스페이스입니다(예: 로그 항목을 생성하는 클래스의 이름). 이는 추적 이벤트에는 사용되지 않습니다.
다음 표에는 이 열에 포함될 수 있는 특성이 나와 있습니다.
범위 값¶
속성 |
타입 |
설명 |
예 |
---|---|---|---|
|
문자열 |
이벤트를 내보내는 코드의 네임스페이스입니다. |
|
예¶
{
"name": "com.sample.MyClass"
}
SCOPE_ATTRIBUTES 열¶
향후 사용을 위해 예약되어 있습니다.
START_TIMESTAMP 열¶
범위가 UTC 타임스탬프로 시작된 시간입니다.
RECORD_TYPE 열 값 |
START_TIMESTAMP 값 설명 |
---|---|
|
사용되지 않습니다. |
|
범위가 시작된 시간입니다. |
|
사용되지 않습니다. |
|
RECORD 열 |
메트릭 데이터 수집은 모든 계정에서 사용할 수 있는 미리 보기 기능입니다.
TIMESTAMP 열¶
이벤트를 내보낸 시간입니다. 이 값의 의미는 다음 표에 나열된 대로 행이 나타내는 레코드 유형에 따라 달라집니다.
RECORD_TYPE 열 값 |
TIMESTAMP 값 설명 |
---|---|
|
이벤트를 내보낸 벽시계 시간입니다. |
|
실행이 종결된 시간입니다. |
|
이벤트를 내보낸 벽시계 시간입니다. |
TRACE 열¶
함수와 프로시저의 실행을 나타내는 고유 식별자입니다.
RECORD_TYPE 열 값 |
TRACE 값 설명 |
---|---|
|
사용되지 않습니다. |
|
|
|
|
추적 값¶
다음 표에는 이 열에 포함될 수 있는 특성이 나와 있습니다.
속성 |
타입 |
설명 |
예 |
---|---|---|---|
|
16진수 문자열 |
스레딩 모델에 대한 고유 식별자입니다. 단일 스레드인 프로시저는 단일 현재 범위가 추적에서 다른 프로시저 또는 UDF를 호출한 프로시저의 범위인 경우 이 |
|
|
16진수 문자열 |
쿼리에서 이루어진 호출의 고유 식별자입니다. 저장 프로시저가 호출 체인에서 호출되지 않는 경우 각 호출에는 고유 프로시저가 호출 체인에서 다른 프로시저 또는 UDF에 의해 호출될 때, 해당 프로시저는 다른 프로시저 및 체인 내 UDFs와 동일한 이 값은 각 쿼리에 고유하며 쿼리 내의 모든 범위에 대해 동일합니다. 단일 쿼리 실행 내에서 이벤트를 그룹화하는 데 사용할 수 있습니다. |
|
예¶
다음 예제의 코드는 범위 또는 범위 이벤트에 대해 존재하는 특성을 보여줍니다.
{
"span_id": "b4c28078330873a2",
"trace_id": "6992e9febf0b97f45b34a62e54936adb"
}
VALUE 열¶
로그 이벤트의 경우 이는 보통 로그 메시지입니다. 로그에 기록된 이벤트가 처리되지 않은 예외 에 대한 것인 경우 이 열의 값은 단순히
exception
입니다.메트릭의 경우 이는 메트릭의 숫자 값입니다. [3]
VALUE 열의 유형은 VARIANT이므로(STRING 아님) JavaScript와 같은 일부 언어의 경우 문자열이 아닌 값을 가질 수 있습니다.
메트릭 데이터 수집은 모든 계정에서 사용할 수 있는 미리 보기 기능입니다.