Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważna
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Ta strona dokumentuje tabele Lakebase zapisuje w schemacie wykazu aparatu Unity po skonfigurowaniu wglądu w projekt. Szczegółowe informacje i Genie odczytują te same dane, a ponieważ ląduje we własnym wykazie aparatu Unity, możesz wykonywać zapytania bezpośrednio za pomocą dowolnego narzędzia Azure Databricks.
Note
Jest to funkcja beta. Nazwy tabel i kolumn mogą ulec zmianie przed ogólną dostępnością.
Co jest przechwytywane
Lakebase przechwytuje sygnały, na które zwróciłby uwagę doświadczony administrator bazy danych, a następnie zapisuje je w kilku tabelach, które po wyeksportowaniu można bezpośrednio odpytywać:
| Co jest przechwytywane | Gdzie ląduje |
|---|---|
| Aktywne sesje i zdarzenia oczekiwania |
active_session_history, wait_event_counters |
| Plany zapytań i statystyki wykonywania poszczególnych zapytań |
plan_history, pg_stat_statements_counters |
| Zmiany schematu: co się zmieniło, kiedy i przez kogo | ddl_history |
| Statystyki bazy danych: rozmiar, odczyt i modyfikacja wierszy oraz liczby sesji |
database_counters, database_gauges |
| Użycie zasobów obliczeniowych: procesor CPU, pamięć, pamięć podręczna, połączenia |
compute_counters, compute_gauges |
| Surowe komunikaty dziennika Postgresa, w tym błąd będący przyczyną niepowodzenia | postgres_logs |
Insights i Genie odczytują te dane, aby oprzeć swoje odpowiedzi na podstawie tego, co faktycznie wydarzyło się w Twojej bazie danych, a te same tabele napędzają gotowe dashboardy obserwacji. Reszta tej strony dokumentuje każdą kolumnę w każdej tabeli.
Kolumny wspólne dla każdej tabeli
Każda poniższa tabela zawiera te kolumny, które identyfikują, skąd pochodzi wiersz:
| Column | Typ | Description |
|---|---|---|
project_id |
STRING | Projekt Lakebase pochodzi z wiersza. |
branch_id |
STRING | Gałąź, z których pochodzi wiersz. |
endpoint_id |
STRING | Punkt końcowy obliczeniowy, z których pochodzi wiersz. |
compute_id |
STRING | Określone wystąpienie obliczeniowe. Zmienia się to, gdy obliczenia są skalowane do zera i wznawiane. |
ts |
TIMESTAMP | Kiedy wiersz został zarejestrowany. |
compute_mode |
STRING | Tryb obliczeń w tym czasie, na przykład odczyt-zapis lub tylko do odczytu. |
Tabele z nazwami kończącymi _counters się również kolumną previous_ts , oznaczając początek interwału wartości wiersza skumulowane. Są to wartości skumulowane dla tego interwału, a nie odczyty do punktu w czasie. Tabele kończące się w tabeli _gauges to zamiast tego odczyty do punktu w czasie i nie previous_tsmają wartości .
W poniższych tabelach wymieniono tylko kolumny wykraczające poza te typowe.
Działanie sesji
Migawka każdego aktywnego zaplecza, próbkowana w sposób ciągły. Jest to ten sam wzorzec co usługa AWS Performance Insights lub Aktywna historia sesji (ASH) firmy Oracle: jeśli sesja wykonuje cokolwiek, w tym oczekiwanie, zostanie wyświetlona tutaj.
active_session_history
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Położenie porządkowe tej próbki w jej partii. |
pid |
LONG | Identyfikator procesu zaplecza. |
datid |
LONG | Identyfikator obiektu bazy danych. |
userid |
LONG | Identyfikator obiektu roli łączenia. |
queryid |
LONG | Identyfikuje uruchamiane zapytanie. Dopasowywuje queryid wartość w elem.pg_stat_statements_counters |
wait_event_info |
LONG | Wewnętrzne kodowanie zdarzenia oczekiwania. |
wait_event_type |
STRING | Kategoria zdarzenia oczekiwania, na przykład Timeout lub Lock. |
wait_event |
STRING | Konkretne zdarzenie oczekiwania, na przykład PgSleep. |
backend_state |
LONG | Stan zaplecza, na przykład aktywny lub bezczynny. |
backend_type |
LONG | Typ procesu zaplecza. |
xact_age_ms |
LONG | Jak długo bieżąca transakcja została otwarta. |
query_age_ms |
LONG | Jak długo uruchomiono bieżące zapytanie. |
blocking_pid |
LONG | Identyfikator PID sesji blokującej ten, jeśli istnieje. |
leader_pid |
LONG | Identyfikator PID równoległego lidera zapytania, jeśli to zaplecze jest procesem roboczym równoległym. |
flags |
LONG | Wewnętrzne flagi stanu. |
plan_fingerprint |
LONG | Linki do określonego kształtu planu w programie plan_history. |
appname_hash |
LONG | Skrót nazwy aplikacji łączącej. |
Oczekiwanie zdarzeń
Zagregowane liczniki zdarzeń oczekiwania i czas, uzupełniając widok na próbkę w pliku active_session_history.
wait_event_counters
| Column | Typ | Description |
|---|---|---|
wait_event_id |
LONG | Wewnętrzne kodowanie zdarzenia oczekiwania. |
wait_class_name |
STRING | Kategoria zdarzenia oczekiwania. |
wait_event_name |
STRING | Określone zdarzenie oczekiwania. |
wait_event_count |
LONG | Ile razy to zdarzenie oczekiwania wystąpiło w interwale. |
wait_event_time |
Podwójny | Łączny czas spędzony w tym zdarzeniu oczekiwania w interwale. |
Plany zapytań
Rekord na wykonanie planów zapytań, w tym pełny plan i statystyki magazynu specyficzne dla neonów. Jest to najbardziej szczegółowa tabela, w której kończy się badanie wolnych zapytań.
plan_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Położenie porządkowe tego wiersza w jego partii. |
analyze_enabled |
BOOLEAN | Czy plan zawiera rzeczywiste statystyki wykonania (EXPLAIN ANALYZE), a nie tylko oszacowania. |
buffers_enabled |
BOOLEAN | Czy plan zawiera statystyki użycia buforu. |
query_hash |
STRING | Skrót identyfikujący tekst zapytania. |
queryid |
LONG | Identyfikuje zapytanie. Dopasuj do queryid i pg_stat_statements_countersactive_session_history. |
duration_ms |
Podwójny | Jak długo trwało uruchamianie zapytania. |
total_cost |
Podwójny | Szacowany koszt planisty dla zapytania. |
plan_rows |
LONG | Szacowana liczba wierszy planisty. |
actual_rows |
LONG | Zwrócona rzeczywista liczba wierszy. |
plan_fingerprint |
LONG | Identyfikuje ten konkretny kształt planu. Dopasowywuje plan_fingerprint wartość w elem.active_session_history |
lock_wait_time_ms |
Podwójny | Czas spędzony na czekaniu na blokady. |
planning_time_ms |
Podwójny | Czas spędzony na planowaniu zapytania, niezależnie od wykonania. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Działanie pamięci podręcznej buforu współużytkowanego dla tego wykonania. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Działanie buforu lokalnego dla tabel tymczasowych. |
temp_blks_read / temp_blks_written |
LONG | Tymczasowe działanie pliku, na przykład z dużego sortowania lub skrótu. |
neon_getpage_count |
LONG | Liczba żądań strony wysyłanych do serwera stronicowania. |
neon_file_cache_hits |
LONG | Liczba stron obsługiwanych z lokalnej pamięci podręcznej plików zamiast stronicowania. |
neon_getpage_wait_us |
LONG | Czas spędzony na oczekiwaniu na żądania strony pageserver w mikrosekundach. |
backend_pid |
LONG | Identyfikator procesu zaplecza, który uruchomił to zapytanie. |
lock_wait_count |
LONG | Ile razy to wykonanie czekało na blokadę. |
userid / dbid |
LONG | Identyfikatory obiektów roli łączenia i bazy danych. |
query_text |
STRING | Tekst zapytania. |
plan_json |
STRING | Pełny plan zapytania w formacie JSON. |
usename / datname |
STRING | Nazwy roli łączącej i bazy danych. |
application_name / client_addr |
STRING | Nazwa i adres klienta aplikacji łączącej. |
wait_events |
STRING | Zdarzenia oczekiwania obserwowane podczas wykonywania. |
parameters |
STRING | Powiązywanie parametrów używanych w zapytaniu, jeśli istnieje. |
blocking_pids |
STRING | Identyfikatory PID sesji, które zablokowały to wykonanie, jeśli istnieje. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Wewnętrzne identyfikatory neonów dla gałęzi, punktu końcowego i osi czasu. |
cpu_user_time_ms / cpu_sys_time_ms |
Podwójny | Czas procesora CPU zużywany przez to wykonanie z podziałem na czas użytkownika i system. |
voluntary_csw / involuntary_csw |
LONG | Przełączniki kontekstowe podczas wykonywania. |
trace_id / span_id / trace_flags / service_name |
CIĄG/ CIĄG / DŁUGI / CIĄG | Identyfikatory śledzenia typu OpenTelemetry, jeśli zapytanie było częścią żądania śledzenia. |
timeline_id |
LONG | Wewnętrzny identyfikator osi czasu. |
truncated |
BOOLEAN | Czy dane tego wiersza (na przykład duży plan) zostały obcięte przed zapisaniem. |
Statystyki zapytań
Zagregowane statystyki poszczególnych zapytań pochodzące z rozszerzenia standardowego pg_stat_statements .
pg_stat_statements_counters
| Column | Typ | Description |
|---|---|---|
userid / dbid |
LONG | Identyfikatory obiektów roli łączenia i bazy danych. |
queryid |
LONG | Identyfikuje zapytanie. Dopasuj do queryid i plan_historyactive_session_history. |
toplevel |
BOOLEAN | Czy ten wiersz jest przeznaczony dla instrukcji najwyższego poziomu, w przeciwieństwie do jednego zagnieżdżonego wewnątrz funkcji PL/pgSQL lub procedury. Zobacz ograniczenie PL/pgSQL. |
query |
STRING | Tekst zapytania. |
calls |
LONG | Liczba wykonań tego zapytania w interwale. |
plans |
LONG | Ile razy to zapytanie było planowane w interwale. |
rows |
LONG | Łączna liczba zwróconych lub zmodyfikowanych wierszy. |
total_exec_time / total_plan_time |
Podwójny | Łączny czas spędzony na wykonywaniu i planowaniu tego zapytania w interwale. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Działanie pamięci podręcznej buforu współużytkowanego. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Działanie buforu lokalnego dla tabel tymczasowych. |
temp_blks_read / temp_blks_written |
LONG | Tymczasowe działanie pliku. |
wal_bytes / wal_fpi / wal_records |
LONG | Wolumin dziennika z wyprzedzeniem generowany przez to zapytanie. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Mixed | Statystyki kompilacji JIT (just in time), jeśli dla tego zapytania użyto trybu JIT. |
Zmiany schematu
Zmiany schematu: co się zmieniło, kiedy i przez kogo. To właśnie usługa Genie odczytuje, aby prześledzić zdarzenie z powrotem do zmiany schematu, niezależnie od wdrożenia lub ręcznej edycji.
ddl_history
| Column | Typ | Description |
|---|---|---|
row_position |
LONG | Położenie porządkowe tego wiersza w jego partii. |
command_tag |
STRING | Typ polecenia DDL, na przykład ALTER TABLE. |
object_type / object_name |
STRING | Rodzaj i nazwa obiektu, który uległ zmianie. |
schema_name |
STRING | Schemat Bazy danych Postgres, do którego należy obiekt. |
query_text |
STRING | Pełna instrukcja DDL. |
duration_ms |
Podwójny | Jak długo trwało uruchamianie instrukcji DDL. |
userid / usename |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa roli łączenia. |
application_name |
STRING | Nazwa aplikacji łączącej. |
backend_pid |
LONG | Identyfikator procesu zaplecza, który uruchomił instrukcję . |
dbid |
LONG | Identyfikator obiektu bazy danych. |
search_path |
STRING | Ścieżka wyszukiwania sesji w tym czasie. |
ddl_json |
STRING | Ustrukturyzowana, przeanalizowana reprezentacja instrukcji DDL. |
Note
Przechwytywanie DDL ma rzeczywistą lukę: może zostać pominięta zmiana wprowadzona bezpośrednio wokół wznawiania obliczeń ze skali do zera. Jeśli w tym miejscu nie pojawi się zmiana schematu, mimo że wiadomo, że tak się stało, jest to najbardziej prawdopodobny powód. Zobacz Ograniczenia.
Dzienniki bazy danych Postgres
Nieprzetworzone komunikaty dziennika Postgres, w tym określony błąd związany z awarią.
postgres_logs
| Column | Typ | Description |
|---|---|---|
sample_seq |
LONG | Położenie porządkowe tego wiersza w jego partii. |
elevel |
LONG | Wewnętrzne kodowanie na poziomie dziennika. |
severity |
STRING | Ważność dziennika, na przykład ERROR lub LOG. |
sqlstate |
STRING | Kod błędu Postgres SQLSTATE, na przykład 42703 dla niezdefiniowanej kolumny. |
backend_pid / leader_backend_pid |
LONG | Identyfikator procesu zaplecza i identyfikator PID lidera zapytania równoległego, jeśli ma to zastosowanie. |
userid / usename |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa roli łączenia. |
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
application_name / client_addr |
STRING | Nazwa i adres klienta aplikacji łączącej. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | Schemat, tabela, kolumna, ograniczenie lub typ danych, do którego odwołuje się błąd, gdy element Postgres ma jeden. |
funcname |
STRING | Funkcja, w przypadku gdy ma to zastosowanie, wystąpił błąd. |
filename / lineno |
CIĄG/DŁUGI | Plik źródłowy postgres i wiersz błędu pochodzi. |
message |
STRING | Tekst komunikatu dziennika. |
detail / hint / context |
STRING | Dodatkowe szczegóły, sugerowana poprawka i kontekst błędu, gdy usługa Postgres je zawiera. |
internalquery |
STRING | Zapytanie wygenerowane wewnętrznie związane z błędem, jeśli ma to zastosowanie. |
statement |
STRING | Instrukcja, która wyzwoliła ten wpis dziennika. |
truncated_mask |
LONG | Wskazuje, które pola, jeśli istnieją, zostały obcięte przed zapisaniem. |
Note
Pola ustrukturyzowane schema_name, table_namei column_name nie są wypełniane dla każdego typu błędu. Zwykły błąd analizy "kolumna nie istnieje" (SQLSTATE 42703), na przykład pozostawia je puste, mimo że message bezpośrednio nadaj kolumnie nazwy. Nie należy polegać na wypełnianiu tych pól. Najpierw sprawdź message .
Metryki obliczeniowe
Użycie zasobów na poziomie obliczeniowym: procesor CPU, pamięć, dysk i operacje we/wy sieci oraz lokalna pamięć podręczna plików (LFC), pamięć obliczeniowa usługi Lakebase przed serwerem stronicowania.
compute_counters
| Column | Typ | Description |
|---|---|---|
backpressure_throttling_seconds |
Podwójny | Czas, w jaki warstwa magazynu spędziła na ograniczaniu liczby operacji zapisu w tym interwale. Wartość niezerowa oznacza, że wolumin zapisu przekroczył ilość miejsca do wchłonięcia. |
host_busiest_cpu_seconds / host_cpu_seconds |
Podwójny | Wykorzystany czas procesora CPU dla najbardziej ruchliwego rdzenia i łącznie. |
host_disk_read_bytes / host_disk_written_bytes |
Podwójny | Wolumin we/wy dysku. |
host_network_receive_bytes / host_network_transmit_bytes |
Podwójny | Wolumin we/wy sieci. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Działanie lokalnej pamięci podręcznej plików dla tego interwału. |
replica_lfc_redo_evictions |
LONG | Eksmisje lokalnej pamięci podręcznej plików spowodowane przez ponowne wykonanie repliki, jeśli to obliczenie jest repliką do odczytu. |
compute_gauges
| Column | Typ | Description |
|---|---|---|
current_lsn |
LONG | Bieżąca pozycja dziennika z wyprzedzeniem zapisu. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | Odtwarzanie wal i odbieranie pozycji, jeśli to obliczenia są repliką do odczytu. |
max_connections |
LONG | Skonfigurowany limit połączeń. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Szacowany rozmiar zestawu roboczego w ciągu ostatnich 5, 15 i 60 minut. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Pojemność lokalnej pamięci podręcznej plików i bieżące użycie. |
total_size_limit / total_size |
LONG | Ogólna pojemność magazynu i bieżące użycie. |
replication_lag_bytes / replication_lag_time_ms |
DŁUGI /PODWÓJNY | Opóźnienie replikacji, jeśli to środowisko obliczeniowe jest repliką do odczytu. |
host_logical_cpus / host_memory_total_bytes |
Podwójny | Zaaprowizowana pamięć i procesor obliczeniowy. |
Metryki bazy danych
Aktywność dla bazy danych: wiersze zmienione, transakcje, sesje i kondycja próżni. Jest to miejsce, w którym na żywo sygnały wylożenia tabeli i automatycznego czyszczenia.
database_counters
| Column | Typ | Description |
|---|---|---|
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
Podwójny | Czas spędzony na aktywnej, bezczynnej transakcji i ogólnie połączony. |
deadlocks |
LONG | Liczba wykrytych zakleszczeń. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Działanie na poziomie wiersza dla interwału. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Liczba cykli życia sesji. |
shared_blks_hit / shared_blks_read |
LONG | Działanie pamięci podręcznej buforu współużytkowanego. |
xact_commit / xact_rollback |
LONG | Zatwierdzone i wycofane transakcje. |
database_gauges
| Column | Typ | Description |
|---|---|---|
datid / datname |
DŁUGI/CIĄG | Identyfikator obiektu i nazwa bazy danych. |
numbackends |
LONG | Bieżąca liczba połączeń z tą bazą danych. |
size |
LONG | Rozmiar dysku bazy danych. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Identyfikator transakcji i wiek identyfikatora wieloaktakowego najstarszego nierozrozzonego wiersza. Rosnące wartości są najwcześniejszym sygnałem próżni spadającym w tyle, na tyle, zanim wzdęcie stanie się widoczne w rozmiarze tabeli. |
Ograniczenia
Warning
Jeśli tworzysz role do łączenia się aplikacji, hasło wpisane w instrukcji CREATE ROLE ... PASSWORD '...' SQL może trafić do historii zapytań lub instrukcji. Stwórz rolę przez UI, SDK, API lub CLI, które generują hasło po stronie serwera, dzięki czemu nigdy nie wpisujesz go jako tekst powikłany. Interfejs wyświetla wygenerowane hasło raz. SDK, API i CLI go nie zwracają, więc hasło uzyskaj później. Zobacz Jak uzyskać hasło.
W wersji beta obowiązują następujące ograniczenia:
COPYoperacje nie są obecnie rejestrowane w historii planów zapytań.Zapytanie wykonywane wewnątrz funkcji PL/pgSQL lub procedury nie jest przechwytywane w telemetrii na poziomie zapytania, chyba że jest również uruchamiane jako instrukcja najwyższego poziomu. Własne śledzenie instrukcji w Postgresie domyślnie zlicza tylko instrukcje najwyższego poziomu.
Gałęzie i punkty końcowe pojawiają się w wyeksportowanych danych telemetrycznych i insightach pod wewnętrznym identyfikatorem (na przykład
br-odd-mud-y2icrn1h), a nie pod nazwą wyświetlaną, taką jak „produkcja”. Jeśli musisz potwierdzić, której gałęzi lub którego punktu końcowego dotyczy insight lub wiersz tabeli, porównaj identyfikator z danymi w interfejsie użytkownika Lakebase.Jednostki GUCs, które umożliwiają przechwytywanie danych telemetrycznych, mogą nie być propagowane automatycznie do istniejących zasobów obliczeniowych. Jeśli dane telemetryczne nie są wyświetlane po skonfigurowaniu możliwości obserwacji, połącz się z projektem i sprawdź:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Oba muszą zwrócić wartość
on. Jeśli którykolwiek z nich zwracaoff, uruchom ponownie punkt końcowy obliczeń.
Następne kroki
- Znajdź i rozwiąż problemy za pomocą Insights: zobacz, że te dane są przedstawione jako diagnoza, a nie jako surowe wiersze.
- Zbadaj z Dżinem: zadawaj pytania dotyczące tej telemetrii własnymi słowami.