원격 분석 테이블 참조

Important

이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.

이 페이지에서는 프로젝트에 대한 가시성을 구성 한 후 Lakebase가 Unity 카탈로그 스키마에 쓰는 테이블을 설명합니다. Insights와 Genie는 이 동일한 데이터를 읽고 고유한 Unity 카탈로그에 배치되므로 Azure Databricks 도구를 사용하여 직접 쿼리할 수 있습니다.

메모

베타 기능입니다. 일반 공급 전에 테이블 및 열 이름이 변경될 수 있습니다.

캡처되는 항목

Lakebase는 숙련된 DBA가 살펴볼 만한 신호를 포착해, 내보낸 뒤 직접 쿼리할 수 있는 몇 개의 테이블에 담아 줍니다.

캡처된 내용 착지 위치
활성 세션 및 대기 이벤트 active_session_history, wait_event_counters
쿼리 계획 및 쿼리별 실행 통계 plan_history, pg_stat_statements_counters
스키마 변경: 변경된 내용, 시기 및 대상 ddl_history
데이터베이스 통계: 크기, 행 읽기 및 수정, 세션 수 database_counters, database_gauges
컴퓨팅 리소스 사용량: CPU, 메모리, 캐시, 연결 compute_counters, compute_gauges
실패의 원인이 된 오류를 포함한 Postgres 원시 로그 메시지 postgres_logs

Insights와 Genie는 이 데이터를 읽어 데이터베이스에서 실제로 일어난 일에 근거해 답변을 내고, 같은 테이블이 이미 만들어진 관측 가능 대시보드를 구동합니다. 이 페이지의 나머지 부분은 각 표의 모든 열을 기록합니다.

모든 테이블에 공통된 열

아래의 모든 표에는 행의 원본을 식별하는 다음 열이 포함되어 있습니다.

Column 유형 Description
project_id STRING 행이 온 Lakebase 프로젝트입니다.
branch_id STRING 행이 온 분기입니다.
endpoint_id STRING 행이 온 컴퓨팅 엔드포인트입니다.
compute_id STRING 특정 컴퓨팅 인스턴스입니다. 컴퓨팅 크기가 0으로 조정되고 다시 시작될 때 변경됩니다.
ts TIMESTAMP 행이 기록된 경우입니다.
compute_mode STRING 당시의 컴퓨팅 모드(예: 읽기-쓰기 또는 읽기 전용)입니다.

이름이 끝나는 _counters 테이블에는 행 값이 누적된 간격의 시작을 표시하는 열도 포함 previous_ts 됩니다. 이러한 값은 지정 시간 판독값이 아니라 해당 간격에 대한 누적 값입니다. 끝으로 끝나는 _gauges 테이블은 대신 지정 시간 판독값이며 , 이 값은 없습니다 previous_ts.

아래 표에는 이러한 공통 열을 초과하는 열만 나열되어 있습니다.

세션 활동

지속적으로 샘플링되는 모든 활성 백 엔드의 스냅샷입니다. 이는 AWS Performance Insights 또는 Oracle의 ASH(활성 세션 기록)와 동일한 패턴입니다. 세션이 대기를 비롯한 작업을 수행하는 경우 여기에 표시됩니다.

active_session_history

Column 유형 Description
sample_seq LONG 일괄 처리 내에서 이 샘플의 서수 위치입니다.
pid LONG 백 엔드의 프로세스 ID입니다.
datid LONG 데이터베이스의 개체 ID입니다.
userid LONG 연결 역할의 개체 ID입니다.
queryid LONG 실행 중인 쿼리를 식별합니다. 에서 queryid일치 pg_stat_statements_counters
wait_event_info LONG 대기 이벤트의 내부 인코딩입니다.
wait_event_type STRING 대기 이벤트의 범주(예 Timeout : 또는 Lock.)입니다.
wait_event STRING 특정 대기 이벤트(예 PgSleep: .)
backend_state LONG 백 엔드의 상태(예: 활성 또는 유휴 상태)입니다.
backend_type LONG 백 엔드 프로세스의 형식입니다.
xact_age_ms LONG 현재 트랜잭션이 열린 기간입니다.
query_age_ms LONG 현재 쿼리가 실행된 기간입니다.
blocking_pid LONG 이 세션이 차단되는 세션의 PID(있는 경우)입니다.
leader_pid LONG 이 백 엔드가 병렬 작업자인 경우 병렬 쿼리 리더의 PID입니다.
flags LONG 내부 상태 플래그입니다.
plan_fingerprint LONG 의 특정 계획 셰이프에 대한 링크입니다 plan_history.
appname_hash LONG 연결 애플리케이션 이름의 해시입니다.

대기 이벤트

대기 이벤트 수 및 시간을 집계하여 샘플별 보기를 보완합니다 active_session_history.

wait_event_counters

Column 유형 Description
wait_event_id LONG 대기 이벤트의 내부 인코딩입니다.
wait_class_name STRING 대기 이벤트의 범주입니다.
wait_event_name STRING 특정 대기 이벤트입니다.
wait_event_count LONG 이 대기 이벤트가 간격에서 발생한 횟수입니다.
wait_event_time DOUBLE 간격 동안 이 대기 이벤트에 소요된 총 시간입니다.

쿼리 계획

전체 계획 및 Neon 관련 스토리지 통계를 포함한 쿼리 계획의 실행별 레코드입니다. 가장 자세한 테이블이며 일반적으로 느린 쿼리 조사가 종료됩니다.

plan_history

Column 유형 Description
row_position LONG 일괄 처리 내에서 이 행의 서수 위치입니다.
analyze_enabled BOOLEAN 계획에 예측뿐만 아니라 실제 실행 통계()EXPLAIN ANALYZE가 포함되는지 여부입니다.
buffers_enabled BOOLEAN 계획에 버퍼 사용 통계가 포함되는지 여부입니다.
query_hash STRING 쿼리 텍스트를 식별하는 해시입니다.
queryid LONG 쿼리를 식별합니다. 일치 queryid 항목 pg_stat_statements_countersactive_session_history.
duration_ms DOUBLE 쿼리를 실행하는 데 걸린 시간입니다.
total_cost DOUBLE 쿼리에 대한 플래너의 예상 비용입니다.
plan_rows LONG 플래너의 예상 행 수입니다.
actual_rows LONG 반환된 실제 행 수입니다.
plan_fingerprint LONG 이 특정 계획 셰이프를 식별합니다. 에서 plan_fingerprint일치 active_session_history
lock_wait_time_ms DOUBLE 잠금을 기다리는 데 소요된 시간입니다.
planning_time_ms DOUBLE 실행과는 별도로 쿼리를 계획하는 데 소요된 시간입니다.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG 이 실행에 대한 공유 버퍼 캐시 작업입니다.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG 임시 테이블에 대한 로컬 버퍼 작업입니다.
temp_blks_read / temp_blks_written LONG 임시 파일 작업(예: 큰 정렬 또는 해시).
neon_getpage_count LONG pageserver로 전송된 페이지 요청 수입니다.
neon_file_cache_hits LONG pageserver 대신 로컬 파일 캐시에서 제공되는 페이지 수입니다.
neon_getpage_wait_us LONG pageerver 페이지 요청에서 대기하는 데 소요된 시간(마이크로초)입니다.
backend_pid LONG 이 쿼리를 실행한 백 엔드 프로세스 ID입니다.
lock_wait_count LONG 이 실행이 잠금에서 대기한 횟수입니다.
userid / dbid LONG 연결 역할 및 데이터베이스의 개체 ID입니다.
query_text STRING 쿼리 텍스트입니다.
plan_json STRING 전체 쿼리 계획(JSON)입니다.
usename / datname STRING 연결 역할 및 데이터베이스의 이름입니다.
application_name / client_addr STRING 연결 애플리케이션의 이름 및 클라이언트 주소입니다.
wait_events STRING 이 실행 중에 관찰된 이벤트를 대기합니다.
parameters STRING 쿼리에 사용되는 매개 변수(있는 경우)를 바인딩합니다.
blocking_pids STRING 이 실행을 차단한 세션의 PID(있는 경우)입니다.
neon_branch_id / neon_endpoint_id / neon_timeline_id STRING 분기, 엔드포인트 및 타임라인에 대한 내부 네온 식별자입니다.
cpu_user_time_ms / cpu_sys_time_ms DOUBLE 이 실행에 사용된 CPU 시간은 사용자 및 시스템 시간으로 분할됩니다.
voluntary_csw / involuntary_csw LONG 이 실행 중에 컨텍스트가 전환됩니다.
trace_id / span_id / trace_flags / service_name 줄 / 줄 / 긴 / 줄 쿼리가 추적된 요청의 일부인 경우 OpenTelemetry 스타일 추적 식별자입니다.
timeline_id LONG 내부 타임라인 식별자입니다.
truncated BOOLEAN 이 행의 데이터(예: 대규모 계획)가 작성되기 전에 잘렸는지 여부입니다.

쿼리 통계

표준 pg_stat_statements 확장에서 파생된 쿼리별 집계 통계입니다.

pg_stat_statements_counters

Column 유형 Description
userid / dbid LONG 연결 역할 및 데이터베이스의 개체 ID입니다.
queryid LONG 쿼리를 식별합니다. 일치 queryid 항목 plan_historyactive_session_history.
toplevel BOOLEAN PL/pgSQL 함수 또는 프로시저 내에 중첩된 행이 아닌 최상위 문에 대한 행인지 여부입니다. PL/pgSQL 제한 사항을 참조하세요.
query STRING 쿼리 텍스트입니다.
calls LONG 이 쿼리가 간격으로 실행된 횟수입니다.
plans LONG 이 쿼리가 간격으로 계획된 횟수입니다.
rows LONG 반환되거나 영향을 받는 총 행입니다.
total_exec_time / total_plan_time DOUBLE 간격으로 이 쿼리를 실행하고 계획하는 데 소요된 총 시간입니다.
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written LONG 공유 버퍼 캐시 작업입니다.
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written LONG 임시 테이블에 대한 로컬 버퍼 작업입니다.
temp_blks_read / temp_blks_written LONG 임시 파일 작업입니다.
wal_bytes / wal_fpi / wal_records LONG 이 쿼리에서 생성된 미리 쓰기 로그 볼륨입니다.
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time 혼합 JIT가 이 쿼리에 사용된 경우 JIT(Just-In-Time) 컴파일 통계입니다.

스키마 변경

스키마 변경: 변경된 내용, 시기 및 대상 이는 Genie가 인시던트를 배포 또는 수동 편집 중에서 스키마 변경으로 다시 추적하기 위해 읽는 내용입니다.

ddl_history

Column 유형 Description
row_position LONG 일괄 처리 내에서 이 행의 서수 위치입니다.
command_tag STRING DDL 명령의 형식입니다(예 ALTER TABLE: .).
object_type / object_name STRING 변경된 개체의 종류 및 이름입니다.
schema_name STRING 개체가 속한 Postgres 스키마입니다.
query_text STRING 전체 DDL 문입니다.
duration_ms DOUBLE DDL 문을 실행하는 데 걸린 시간.
userid / usename LONG/STRING 연결 역할의 개체 ID 및 이름입니다.
application_name STRING 연결 애플리케이션의 이름입니다.
backend_pid LONG 문을 실행한 백 엔드 프로세스 ID입니다.
dbid LONG 데이터베이스의 개체 ID입니다.
search_path STRING 당시 세션의 검색 경로입니다.
ddl_json STRING DDL 문의 구조화된 구문 분석 표현입니다.

메모

DDL 캡처에는 실제 간격이 있습니다. 크기 조정에서 0으로 다시 시작하는 컴퓨팅을 중심으로 변경한 내용을 놓칠 수 있습니다. 스키마 변경이 발생했음을 알고 있더라도 여기에 표시되지 않는 것이 가장 가능성이 큰 이유입니다. 제한 사항을 참조하세요.

Postgres 로그

오류 뒤에 있는 특정 오류를 포함하여 원시 Postgres 로그 메시지입니다.

postgres_logs

Column 유형 Description
sample_seq LONG 일괄 처리 내에서 이 행의 서수 위치입니다.
elevel LONG 내부 로그 수준 인코딩.
severity STRING 로그 심각도(예 ERRORLOG:
sqlstate STRING Postgres SQLSTATE 오류 코드(예 42703 : 정의되지 않은 열)입니다.
backend_pid / leader_backend_pid LONG 백 엔드 프로세스 ID 및 해당하는 경우 병렬 쿼리 리더의 PID입니다.
userid / usename LONG/STRING 연결 역할의 개체 ID 및 이름입니다.
datid / datname LONG/STRING 데이터베이스의 개체 ID 및 이름입니다.
application_name / client_addr STRING 연결 애플리케이션의 이름 및 클라이언트 주소입니다.
schema_name / table_name / column_name / constraint_name / datatype_name STRING Postgres에 있는 경우 오류에서 참조하는 스키마, 테이블, 열, 제약 조건 또는 데이터 형식입니다.
funcname STRING 해당하는 경우 오류가 발생한 함수입니다.
filename / lineno 끈 / 긴 Postgres 원본 파일 및 오류가 발생한 줄입니다.
message STRING 로그 메시지 텍스트입니다.
detail / hint / context STRING Postgres에 추가 세부 정보, 제안된 수정 사항 및 오류 컨텍스트가 있습니다.
internalquery STRING 해당하는 경우 오류와 관련된 내부적으로 생성된 쿼리입니다.
statement STRING 이 로그 항목을 트리거한 문입니다.
truncated_mask LONG 쓰기 전에 잘린 필드(있는 경우)를 나타냅니다.

메모

구조적 schema_nametable_namecolumn_name 필드는 모든 오류 유형에 대해 채워지지 않습니다. 예를 들어 일반 "열이 존재하지 않음" 구문 분석 오류(SQLSTATE 42703예: 열 이름을 직접 지정하더라도 message 비워 둡니다.) 이러한 필드가 채워지는 것을 사용하지 마세요. 먼저 확인합니다 message .

컴퓨팅 메트릭

컴퓨팅 수준 리소스 사용: CPU, 메모리, 디스크 및 네트워크 I/O, 그리고 페이지 서버 앞에 있는 Lakebase의 컴퓨팅 쪽 캐시인 LFC(로컬 파일 캐시)입니다.

compute_counters

Column 유형 Description
backpressure_throttling_seconds DOUBLE 스토리지 계층이 이 간격으로 쓰기를 제한하는 데 소요된 시간입니다. 0이 아닌 값은 쓰기 볼륨이 스토리지가 흡수할 수 있는 용량을 초과했음을 의미합니다.
host_busiest_cpu_seconds / host_cpu_seconds DOUBLE CPU 시간이 가장 많이 소요되고 코어가 가장 많이 소요됩니다.
host_disk_read_bytes / host_disk_written_bytes DOUBLE 디스크 I/O 볼륨.
host_network_receive_bytes / host_network_transmit_bytes DOUBLE 네트워크 I/O 볼륨.
lfc_evictions / lfc_hits / lfc_misses / lfc_writes LONG 이 간격에 대한 로컬 파일 캐시 작업입니다.
replica_lfc_redo_evictions LONG 이 컴퓨팅이 읽기 복제본인 경우 복제본 다시 실행으로 인한 로컬 파일 캐시 제거입니다.

compute_gauges

Column 유형 Description
current_lsn LONG 현재 미리 쓰기 로그 위치입니다.
replica_wal_replay_lsn / replica_wal_receive_lsn LONG 이 컴퓨팅이 읽기 복제본인 경우 WAL 재생 및 수신 위치입니다.
max_connections LONG 구성된 연결 제한입니다.
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m LONG 지난 5분, 15분, 60분 동안의 예상 작업 집합 크기입니다.
lfc_size_limit / lfc_allocated / lfc_used LONG 로컬 파일 캐시 용량 및 현재 사용.
total_size_limit / total_size LONG 전체 스토리지 용량 및 현재 사용량.
replication_lag_bytes / replication_lag_time_ms LONG/DOUBLE 이 컴퓨팅이 읽기 복제본인 경우 복제 지연입니다.
host_logical_cpus / host_memory_total_bytes DOUBLE 컴퓨팅의 프로비전된 CPU 및 메모리입니다.

데이터베이스 메트릭

데이터베이스별 작업: 행 변경, 트랜잭션, 세션 및 진공 상태. 테이블 bloat 및 자동 진공 신호가 있는 위치입니다.

database_counters

Column 유형 Description
datid / datname LONG/STRING 데이터베이스의 개체 ID 및 이름입니다.
active_time_ms / idle_in_transaction_time_ms / session_time_ms DOUBLE 활성, 열린 트랜잭션에서 유휴 상태, 전체 연결에 소요된 시간입니다.
deadlocks LONG 검색된 교착 상태의 수입니다.
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated LONG 간격에 대한 행 수준 작업입니다.
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed LONG 세션 수명 주기 수입니다.
shared_blks_hit / shared_blks_read LONG 공유 버퍼 캐시 작업입니다.
xact_commit / xact_rollback LONG 커밋된 트랜잭션 및 롤백 트랜잭션

database_gauges

Column 유형 Description
datid / datname LONG/STRING 데이터베이스의 개체 ID 및 이름입니다.
numbackends LONG 이 데이터베이스에 대한 현재 연결 수입니다.
size LONG 데이터베이스의 디스크 크기입니다.
oldest_frozen_xid_age / oldest_mxid_age LONG 가장 오래된 고정되지 않은 행의 트랜잭션 ID 및 multixact ID 기간입니다. 값 상승은 테이블 크기에서 bloat이 표시되기 전에 진공이 뒤처지는 초기 신호입니다.

Limitations

Warning

애플리케이션을 연결하는 역할을 만드는 경우 SQL 문에 입력된 암호는 CREATE ROLE ... PASSWORD '...' 쿼리 또는 문 기록에 입력될 수 있습니다. 대신 UI, SDK, API, 또는 CLI를 통해 역할을 생성하세요. 이들은 서버 측에서 비밀번호를 생성하므로 클리어텍스트로 입력하지 않도록 하세요. UI는 생성된 비밀번호를 한 번 보여줍니다. SDK, API, CLI는 비밀번호를 반환하지 않으니 나중에 비밀번호를 받으세요. 비밀번호 획득 방법을 참조하세요.

베타 중에는 다음과 같은 제한 사항이 적용됩니다.

  • COPY 작업은 현재 쿼리 계획 기록에 캡처되지 않습니다.

  • PL/pgSQL 함수 또는 프로시저 내에서 실행되는 쿼리는 최상위 문으로 실행되지 않는 한 쿼리 수준 원격 분석에서 캡처되지 않습니다. Postgres의 자체 문 추적은 기본적으로 최상위 문만 계산합니다.

  • 분기 및 엔드포인트는 "프로덕션"과 같은 표시 이름이 아니라 내부 ID(예: br-odd-mud-y2icrn1h)로 내보낸 원격 분석 및 인사이트에 표시됩니다. 인사이트 또는 테이블 행이 참조하는 분기 또는 엔드포인트를 확인해야 하는 경우 Lakebase UI에서 ID를 상호 참조합니다.

  • 텔레메트리 수집을 활성화하는 GUC는 기존 컴퓨트에 자동으로 전파되지 않을 수 있습니다. 옵저버빌리티를 구성한 후에도 텔레메트리가 표시되지 않으면 프로젝트에 연결한 후 다음을 확인하세요.

    SHOW neon_monitor.log_capture_enabled;
    SHOW databricks.o11y_exporter_enabled;
    

    둘 다 on를 반환해야 합니다. 둘 중 하나가 반환 off되면 컴퓨팅 엔드포인트를 다시 시작합니다.

다음 단계