Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.
Diese Seite dokumentiert die Tabellen Lakebase-Schreibvorgänge in Ihr Unity-Katalogschema, sobald Sie die Observierbarkeit für ein Projekt konfigurieren. Insights und Genie lesen diese Daten, und da sie in Ihrem eigenen Unity-Katalog landet, können Sie sie direkt mit jedem Azure Databricks Tool abfragen.
Note
Dies ist ein Beta-Feature. Tabellen- und Spaltennamen können sich vor der allgemeinen Verfügbarkeit ändern.
Was erfasst wird
Lakebase erfasst die Signale, nach der ein erfahrener DBA suchen würde, und landet in einer Handvoll Tabellen, die Sie direkt abfragen können, nachdem sie exportiert wurden:
| Erfasste Elemente | Wo sie landet |
|---|---|
| Aktive Sitzungen und Warteereignisse |
active_session_history, wait_event_counters |
| Abfragepläne und Abfrageausführungsstatistiken |
plan_history, pg_stat_statements_counters |
| Schemaänderungen: Was sich geändert hat, wann und von wem | ddl_history |
| Datenbankstatistiken: Größe, Lesen und Ändern von Zeilen und Sitzungsanzahl |
database_counters, database_gauges |
| Berechnen der Ressourcenauslastung: CPU, Arbeitsspeicher, Cache, Verbindungen |
compute_counters, compute_gauges |
| Roh-Postgres-Protokollmeldungen, einschließlich des Fehlers, der einem Fehlschlag zugrunde liegt | postgres_logs |
Insights und Genie lesen diese Daten, um ihre Antworten auf das zu stützen, was tatsächlich in Ihrer Datenbank passiert ist, und dieselben Tabellen treiben die fertigen Observability-Dashboards an. Der Rest dieser Seite dokumentiert jede Spalte in jeder Tabelle.
Spalten, die für jede Tabelle gemeinsam sind
Jede tabelle unten enthält diese Spalten, aus denen eine Zeile stammt:
| Column | Type | Beschreibung |
|---|---|---|
project_id |
STRING | Das Lakebase-Projekt, aus dem die Zeile stammte. |
branch_id |
STRING | Die Verzweigung der Zeile stammte von. |
endpoint_id |
STRING | Der Computeendpunkt, von dem die Zeile stammt. |
compute_id |
STRING | Die spezifische Computeinstanz. Dies ändert sich, wenn eine Berechnung auf Null skaliert und fortgesetzt wird. |
ts |
TIMESTAMP | Wann die Zeile aufgezeichnet wurde. |
compute_mode |
STRING | Der Computermodus zum Zeitpunkt, z. B. Lese-/Schreibzugriff oder schreibgeschützt. |
Tabellen mit Namen, die auf "Enden" _counters enden, enthalten auch eine previous_ts Spalte, wobei der Anfang des Intervalls markiert wird, für das die Werte einer Zeile angesammelt wurden. Dies sind kumulierte Werte für dieses Intervall, nicht punktinterne Lesezeiten. Tabellen, die in der Zeit enden, sind stattdessen Punkt-in-Time-Lesezeiten _gauges und haben keine previous_ts.
In den folgenden Tabellen sind nur die Spalten aufgeführt, die über diese allgemeinen Spalten hinausgehen.
Sitzungsaktivität
Eine Momentaufnahme aller aktiven Back-End-Dateien, die kontinuierlich in die Stichprobe einbezogen werden. Dies ist das gleiche Muster wie AWS Performance Insights oder Oracles Active Session History (ASH): Wenn eine Sitzung etwas tut, einschließlich Warten, wird sie hier angezeigt.
active_session_history
| Column | Type | Beschreibung |
|---|---|---|
sample_seq |
LONG | Ordnungsposition dieser Stichprobe innerhalb des Batches. |
pid |
LONG | Die Prozess-ID des Back-Ends. |
datid |
LONG | Die Objekt-ID der Datenbank. |
userid |
LONG | Die Objekt-ID der Verbindungsrolle. |
queryid |
LONG | Identifiziert die auszuführende Abfrage. Übereinstimmungen queryid in pg_stat_statements_counters. |
wait_event_info |
LONG | Interne Codierung des Wait-Ereignisses. |
wait_event_type |
STRING | Die Kategorie des Wait-Ereignisses, z. B Timeout . oder Lock. |
wait_event |
STRING | Das spezifische Wait-Ereignis, z. B PgSleep. . |
backend_state |
LONG | Der Status des Back-Ends, z. B. aktiv oder im Leerlauf. |
backend_type |
LONG | Der Typ des Back-End-Prozesses. |
xact_age_ms |
LONG | Wie lange die aktuelle Transaktion geöffnet ist. |
query_age_ms |
LONG | Wie lange die aktuelle Abfrage ausgeführt wurde. |
blocking_pid |
LONG | Die PID einer Sitzung, die diese Sitzung blockiert, falls vorhanden. |
leader_pid |
LONG | Die PID des parallelen Abfrageleiters, wenn es sich bei diesem Back-End um einen parallelen Worker handelt. |
flags |
LONG | Interne Statuskennzeichnungen. |
plan_fingerprint |
LONG | Links zu einem bestimmten Plan-Shape in plan_history. |
appname_hash |
LONG | Ein Hash des Namens der verbindenden Anwendung. |
Wait-Ereignisse
Aggregierte Warteereignisanzahl und -zeit, ergänzt die Ansicht pro Beispiel in active_session_history.
wait_event_counters
| Column | Type | Beschreibung |
|---|---|---|
wait_event_id |
LONG | Interne Codierung des Wait-Ereignisses. |
wait_class_name |
STRING | Die Kategorie des Wait-Ereignisses. |
wait_event_name |
STRING | Das spezifische Wait-Ereignis. |
wait_event_count |
LONG | Wie oft dieses Wartezeitereignis im Intervall aufgetreten ist. |
wait_event_time |
DOPPELT | Gesamtzeit für dieses Wartezeitereignis während des Intervalls. |
Abfragepläne
Ein Datensatz pro Ausführung von Abfrageplänen, einschließlich des vollständigen Plans und neonspezifischer Speicherstatistiken. Dies ist die detaillierteste Tabelle, und in der Regel endet eine Untersuchung mit langsamen Abfragen.
plan_history
| Column | Type | Beschreibung |
|---|---|---|
row_position |
LONG | Ordnungsposition dieser Zeile innerhalb des Batches. |
analyze_enabled |
BOOLEAN | Gibt an, ob der Plan tatsächliche Ausführungsstatistiken (EXPLAIN ANALYZE) enthält, nicht nur Schätzungen. |
buffers_enabled |
BOOLEAN | Gibt an, ob der Plan Puffernutzungsstatistiken enthält. |
query_hash |
STRING | Hash zur Identifizierung des Abfragetexts. |
queryid |
LONG | Identifiziert die Abfrage. Übereinstimmungen queryid in pg_stat_statements_counters und active_session_history. |
duration_ms |
DOPPELT | Wie lange die Abfrage ausgeführt wurde. |
total_cost |
DOPPELT | Die geschätzten Kosten des Planners für die Abfrage. |
plan_rows |
LONG | Die geschätzte Zeilenanzahl des Planners. |
actual_rows |
LONG | Die tatsächlich zurückgegebene Zeilenanzahl. |
plan_fingerprint |
LONG | Identifiziert dieses bestimmte Plan-Shape. Übereinstimmungen plan_fingerprint in active_session_history. |
lock_wait_time_ms |
DOPPELT | Zeit für das Warten auf Sperren. |
planning_time_ms |
DOPPELT | Zeitaufwand für die Planung der Abfrage, getrennt von der Ausführung. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Aktivität des freigegebenen Puffercaches für diese Ausführung. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokale Pufferaktivität für temporäre Tabellen. |
temp_blks_read / temp_blks_written |
LONG | Temporäre Dateiaktivität, z. B. aus einer großen Sortierung oder einem großen Hash. |
neon_getpage_count |
LONG | Anzahl der Seitenanforderungen, die an den Seitenserver gesendet wurden. |
neon_file_cache_hits |
LONG | Anzahl der Seiten, die vom lokalen Dateicache anstelle des Seitenservers bereitgestellt werden. |
neon_getpage_wait_us |
LONG | Zeit für das Warten auf Seitenserver-Seitenanforderungen in Mikrosekunden. |
backend_pid |
LONG | Die Back-End-Prozess-ID, die diese Abfrage ausgeführt hat. |
lock_wait_count |
LONG | Häufigkeit, mit der diese Ausführung auf eine Sperre gewartet hat. |
userid / dbid |
LONG | Die Objekt-IDs der Verbindungsrolle und der Datenbank. |
query_text |
STRING | Der Abfragetext. |
plan_json |
STRING | Der vollständige Abfrageplan als JSON. |
usename / datname |
STRING | Die Namen der Verbindungsrolle und der Datenbank. |
application_name / client_addr |
STRING | Der Name und die Clientadresse der verbindenden Anwendung. |
wait_events |
STRING | Warteereignisse, die während dieser Ausführung beobachtet wurden. |
parameters |
STRING | Binden Von Parametern, die in der Abfrage verwendet werden, falls vorhanden. |
blocking_pids |
STRING | PIDs von Sitzungen, die diese Ausführung blockiert haben, falls vorhanden. |
neon_branch_id / neon_endpoint_id / neon_timeline_id |
STRING | Interne Neon-IDs für die Verzweigung, den Endpunkt und die Zeitachse. |
cpu_user_time_ms / cpu_sys_time_ms |
DOPPELT | Cpu-Zeit, die von dieser Ausführung verbraucht wird, aufgeteilt in Benutzer- und Systemzeit. |
voluntary_csw / involuntary_csw |
LONG | Kontextschalter während dieser Ausführung. |
trace_id / span_id / trace_flags / service_name |
SAITE / SAITE / LANG / SAITE | OpenTelemetry-Ablaufverfolgungs-IDs, wenn die Abfrage Teil einer ablaufverfolgungsbezogenen Anforderung war. |
timeline_id |
LONG | Interner Zeitachsenbezeichner. |
truncated |
BOOLEAN | Gibt an, ob die Daten dieser Zeile (z. B. ein großer Plan) vor dem Schreiben abgeschnitten wurden. |
Abfragestatistik
Aggregierte Statistiken pro Abfrage, die aus der Standarderweiterung pg_stat_statements stammen.
pg_stat_statements_counters
| Column | Type | Beschreibung |
|---|---|---|
userid / dbid |
LONG | Die Objekt-IDs der Verbindungsrolle und der Datenbank. |
queryid |
LONG | Identifiziert die Abfrage. Übereinstimmungen queryid in plan_history und active_session_history. |
toplevel |
BOOLEAN | Gibt an, ob diese Zeile für eine Anweisung der obersten Ebene gilt, im Gegensatz zu einer in einer PL/pgSQL-Funktion oder -Prozedur geschachtelten Anweisung. Siehe die PL/pgSQL-Einschränkung. |
query |
STRING | Der Abfragetext. |
calls |
LONG | Häufigkeit, mit der diese Abfrage im Intervall ausgeführt wurde. |
plans |
LONG | Häufigkeit, mit der diese Abfrage im Intervall geplant wurde. |
rows |
LONG | Gesamtzahl der zurückgegebenen oder betroffenen Zeilen. |
total_exec_time / total_plan_time |
DOPPELT | Gesamtzeit für die Ausführung und Planung dieser Abfrage im Intervall. |
shared_blks_hit / shared_blks_read / shared_blks_dirtied / shared_blks_written |
LONG | Aktivität des freigegebenen Puffercaches. |
local_blks_hit / local_blks_read / local_blks_dirtied / local_blks_written |
LONG | Lokale Pufferaktivität für temporäre Tabellen. |
temp_blks_read / temp_blks_written |
LONG | Temporäre Dateiaktivität. |
wal_bytes / wal_fpi / wal_records |
LONG | Von dieser Abfrage generiertes Schreibzugriffsprotokollvolume. |
jit_emission_count / jit_emission_time / jit_functions / jit_generation_time / jit_inlining_count / jit_inlining_time / jit_optimization_count / jit_optimization_time |
Gemischt | JIT-Kompilierungsstatistiken (just-in-time), wenn JIT für diese Abfrage verwendet wurde. |
Schema-Änderungen
Schemaänderungen: Was sich geändert hat, wann und von wem. Dies ist, was Genie liest, um einen Vorfall auf eine Schemaänderung zurückzuverfolgen, ob von einer Bereitstellung oder einer manuellen Bearbeitung.
ddl_history
| Column | Type | Beschreibung |
|---|---|---|
row_position |
LONG | Ordnungsposition dieser Zeile innerhalb des Batches. |
command_tag |
STRING | Der Typ des DDL-Befehls, z ALTER TABLE. B. . |
object_type / object_name |
STRING | Die Art und der Name des geänderten Objekts. |
schema_name |
STRING | Das Postgres-Schema, zu dem das Objekt gehört. |
query_text |
STRING | Die vollständige DDL-Anweisung. |
duration_ms |
DOPPELT | Wie lange die DDL-Anweisung ausgeführt wurde. |
userid / usename |
LONG / SAITE | Die Objekt-ID und der Name der Verbindungsrolle. |
application_name |
STRING | Der Name der Verbindungsanwendung. |
backend_pid |
LONG | Die Back-End-Prozess-ID, die die Anweisung ausgeführt hat. |
dbid |
LONG | Die Objekt-ID der Datenbank. |
search_path |
STRING | Der Suchpfad der Sitzung zum Zeitpunkt. |
ddl_json |
STRING | Eine strukturierte, analysierte Darstellung der DDL-Anweisung. |
Note
DDL-Erfassung hat eine echte Lücke: Eine Änderung, die direkt um eine Computesumsumierung von Scale-to-Zero vorgenommen wurde, kann übersehen werden. Wenn hier keine Schemaänderung angezeigt wird, obwohl Sie wissen, dass es passiert ist, ist dies der wahrscheinlichste Grund. Informationen finden Sie unter Einschränkungen.
Postgres-Protokolle
Unformatierte Postgres-Protokollmeldungen, einschließlich des spezifischen Fehlers hinter einem Fehler.
postgres_logs
| Column | Type | Beschreibung |
|---|---|---|
sample_seq |
LONG | Ordnungsposition dieser Zeile innerhalb des Batches. |
elevel |
LONG | Interne Protokollebenencodierung. |
severity |
STRING | Der Schweregrad des Protokolls, z. B ERROR . oder LOG. |
sqlstate |
STRING | Der SqlSTATE-Fehlercode für Postgres, z 42703 . B. für eine nicht definierte Spalte. |
backend_pid / leader_backend_pid |
LONG | Die Back-End-Prozess-ID und die PID des parallelen Abfrageleiters, falls zutreffend. |
userid / usename |
LONG / SAITE | Die Objekt-ID und der Name der Verbindungsrolle. |
datid / datname |
LONG / SAITE | Die Objekt-ID und der Name der Datenbank. |
application_name / client_addr |
STRING | Der Name und die Clientadresse der verbindenden Anwendung. |
schema_name / table_name / column_name / constraint_name / datatype_name |
STRING | Das Schema, die Tabelle, die Spalte, die Einschränkung oder der Datentyp, auf den durch den Fehler verwiesen wird, wenn Postgres einen hat. |
funcname |
STRING | Die Funktion, in der der Fehler aufgetreten ist, falls zutreffend. |
filename / lineno |
SAHNE / LANG | Die Postgres-Quelldatei und zeilen den Fehler aus. |
message |
STRING | Der Protokollmeldungstext. |
detail / hint / context |
STRING | Weitere Details, eine vorgeschlagene Lösung und der Kontext des Fehlers, wenn Postgres sie hat. |
internalquery |
STRING | Eine intern generierte Abfrage im Zusammenhang mit dem Fehler, falls zutreffend. |
statement |
STRING | Die Anweisung, die diesen Protokolleintrag ausgelöst hat. |
truncated_mask |
LONG | Gibt an, welche Felder ggf. abgeschnitten wurden, bevor sie geschrieben werden. |
Note
Die strukturierten schema_nameFelder table_nameund column_name Felder werden nicht für jeden Fehlertyp aufgefüllt. Ein einfacher Analysefehler "Spalte ist nicht vorhanden" (SQLSTATE 42703), z. B. lässt sie leer, obwohl message die Spalte direkt benannt wird. Verlassen Sie sich nicht darauf, dass diese Felder aufgefüllt werden. Überprüfen Sie message zuerst.
Berechnen von Metriken
Ressourcenauslastung auf Computeebene: CPU, Arbeitsspeicher, Datenträger und Netzwerk-E/A sowie der lokale Dateicache (LFC), der computeseitige Cache von Lakebase vor dem Pageserver.
compute_counters
| Column | Type | Beschreibung |
|---|---|---|
backpressure_throttling_seconds |
DOPPELT | Zeit, die die Speicherschicht für die Drosselung von Schreibvorgängen in diesem Intervall aufgewendet hat. Ein Wert ungleich Null bedeutet, dass das Schreibvolumen überschreitet, was Speicher aufnehmen kann. |
host_busiest_cpu_seconds / host_cpu_seconds |
DOPPELT | CPU-Zeit verbraucht, für den größten Kern und insgesamt. |
host_disk_read_bytes / host_disk_written_bytes |
DOPPELT | Datenträger-E/A-Volume. |
host_network_receive_bytes / host_network_transmit_bytes |
DOPPELT | Netzwerk-E/A-Volume. |
lfc_evictions / lfc_hits / lfc_misses / lfc_writes |
LONG | Lokale Dateicacheaktivität für dieses Intervall. |
replica_lfc_redo_evictions |
LONG | Lokale Dateicacheräumungen, die durch Replikat wiederholen verursacht werden, wenn es sich bei dieser Berechnung um ein Lesereplikat handelt. |
compute_gauges
| Column | Type | Beschreibung |
|---|---|---|
current_lsn |
LONG | Die aktuelle Position des Schreib-Ahead-Protokolls. |
replica_wal_replay_lsn / replica_wal_receive_lsn |
LONG | Wal replay and receive positions, if this compute is a read replica. |
max_connections |
LONG | Der konfigurierte Verbindungsgrenzwert. |
lfc_working_set_size_5m / lfc_working_set_size_15m / lfc_working_set_size_60m |
LONG | Geschätzte Arbeitssatzgröße über die letzten 5, 15 und 60 Minuten. |
lfc_size_limit / lfc_allocated / lfc_used |
LONG | Kapazität des lokalen Dateicaches und der aktuellen Nutzung. |
total_size_limit / total_size |
LONG | Gesamtspeicherkapazität und aktuelle Nutzung. |
replication_lag_bytes / replication_lag_time_ms |
LANG / DOPPELT | Replikationsverzögerungen, wenn es sich bei dieser Berechnung um ein Lesereplikat handelt. |
host_logical_cpus / host_memory_total_bytes |
DOPPELT | Die bereitgestellte CPU und der Arbeitsspeicher des Computes. |
Datenbankmetriken
Aktivität pro Datenbank: Zeilen geändert, Transaktionen, Sitzungen und Vakuumintegrität. Hier leben Tabellenblähungen und Autovacuum-Signale.
database_counters
| Column | Type | Beschreibung |
|---|---|---|
datid / datname |
LONG / SAITE | Die Objekt-ID und der Name der Datenbank. |
active_time_ms / idle_in_transaction_time_ms / session_time_ms |
DOPPELT | Die in einer geöffneten Transaktion im Leerlauf verbrachte Zeit und insgesamt verbunden. |
deadlocks |
LONG | Anzahl der erkannten Deadlocks. |
rows_deleted / rows_fetched / rows_inserted / rows_returned / rows_updated |
LONG | Aktivität auf Zeilenebene für das Intervall. |
sessions_abandoned / sessions_established / sessions_fatal / sessions_killed |
LONG | Die Anzahl des Sitzungslebenszyklus. |
shared_blks_hit / shared_blks_read |
LONG | Aktivität des freigegebenen Puffercaches. |
xact_commit / xact_rollback |
LONG | Zugesicherte und zurückgesetzte Transaktionen. |
database_gauges
| Column | Type | Beschreibung |
|---|---|---|
datid / datname |
LONG / SAITE | Die Objekt-ID und der Name der Datenbank. |
numbackends |
LONG | Aktuelle Anzahl von Verbindungen zu dieser Datenbank. |
size |
LONG | Die Größe der Datenbank auf dem Datenträger. |
oldest_frozen_xid_age / oldest_mxid_age |
LONG | Transaktions-ID und Multixact-ID Alter der ältesten nichtfrozen Zeile. Steigende Werte sind das früheste Signal des Vakuums, das hinter sich fällt, gut bevor Dieblähungen in der Tabellengröße sichtbar werden. |
Einschränkungen
Warning
Wenn Sie Rollen zum Verbinden von Anwendungen erstellen, kann ein Kennwort, das in eine CREATE ROLE ... PASSWORD '...' SQL-Anweisung eingegeben wurde, im Abfrage- oder Anweisungsverlauf enden. Erstelle die Rolle stattdessen über die UI, SDK, API oder CLI, die das Passwort serverseitig generieren, sodass du es nie als Klartext eingibst. Die Benutzeroberfläche zeigt das generierte Passwort einmal an. Das SDK, die API und die CLI geben sie nicht zurück, also besorge dir danach ein Passwort. Siehe Wie man ein Passwort erhält.
Während der Betaversion gelten die folgenden Einschränkungen:
COPYVorgänge werden derzeit nicht im Abfrageplanverlauf erfasst.Eine Abfrage, die in einer PL/pgSQL-Funktion oder -Prozedur ausgeführt wird, wird nicht in Telemetrie auf Abfrageebene erfasst, es sei denn, sie wird auch als Anweisung der obersten Ebene ausgeführt. Die eigene Anweisungsverfolgung von Postgres zählt standardmäßig nur Anweisungen auf oberster Ebene.
Zweige und Endpunkte erscheinen in exportierten Telemetriedaten und Insights unter ihrer internen ID (zum Beispiel
br-odd-mud-y2icrn1h), nicht unter einem Anzeigenamen wie „production“. Gleichen Sie die ID in der Lakebase-Benutzeroberfläche ab, wenn Sie prüfen müssen, auf welchen Zweig oder Endpunkt sich ein Insight oder eine Tabellenzeile bezieht.GUCs, die die Telemetrieerfassung aktivieren, werden möglicherweise nicht automatisch an eine vorhandene Berechnung weitergegeben. Wenn telemetrie nach der Konfiguration der Observability nicht angezeigt wird, stellen Sie eine Verbindung mit dem Projekt her, und überprüfen Sie Folgendes:
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;Beide müssen
onzurückgeben. Wenn eine von beidenoffzurückgibt, starten Sie den Compute-Endpunkt neu.
Nächste Schritte
- Finden und beheben Sie Probleme mit Insights: Sehen Sie diese Daten als Diagnose und nicht als Rohzeilen.
- Untersuche mit Genie: Stelle Fragen zu dieser Telemetrie in deinen eigenen Worten.