Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。
このページでは、プロジェクトの 可観測性を構成 した後に、Lakebase が Unity カタログ スキーマに書き込むテーブルについて説明します。 Insights と Genie はこの同じデータを読み取り、独自の Unity カタログに格納されるため、任意のAzure Databricks ツールを使用して直接クエリを実行できます。
Note
これはベータ機能です。 テーブル名と列名は、一般提供前に変更される可能性があります。
キャプチャされる内容
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 | 特定のコンピューティング インスタンス。 これは、コンピューティングがゼロにスケーリングされて再開されると変わります。 |
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_countersのactive_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 | ページ サーバーに送信されたページ要求の数。 |
neon_file_cache_hits |
LONG | ページ サーバーの代わりにローカル ファイル キャッシュから提供されるページの数。 |
neon_getpage_wait_us |
LONG | ページ サーバー ページ要求の待機に費やされた時間 (マイクロ秒単位)。 |
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 | ブランチ、エンドポイント、タイムラインの内部 Neon 識別子。 |
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_historyのactive_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 |
Mixed | JIT (Just-In-Time) コンパイル統計 (このクエリに JIT が使用された場合)。 |
スキーマの変更
スキーマの変更: 変更された内容、いつ、だれが変更したか。 これは、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 ステートメントの構造化された解析された表現。 |
Note
DDL キャプチャには実際のギャップがあります。スケールからゼロへのコンピューティング再開の前後で行われた変更を見逃す可能性があります。 スキーマの変更が発生したことがわかっているにもかかわらず、ここに表示されない場合は、それが最も可能性の高い理由です。 制限事項を参照してください。
Postgres ログ
未加工の Postgres ログ メッセージ (エラーの背後にある特定のエラーを含む)。
postgres_logs
| Column | タイプ | Description |
|---|---|---|
sample_seq |
LONG | バッチ内でのこの行の序数位置。 |
elevel |
LONG | 内部ログ レベルのエンコード。 |
severity |
STRING | ログの重大度 ( ERROR や LOGなど)。 |
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 | 書き込まれる前に切り捨てられたフィールド (ある場合) を示します。 |
Note
構造化 schema_name、 table_name、および column_name フィールドは、エラーの種類ごとに設定されるわけではありません。 たとえば、プレーンな "列が存在しません" 解析エラー (SQLSTATE 42703) は、列に直接名前を付 message 場合でも空のままにします。 これらのフィールドが設定されることに依存しないでください。 最初 message 確認します。
コンピューティング メトリック
コンピューティング レベルのリソース使用量: CPU、メモリ、ディスク、ネットワーク I/O、ローカル ファイル キャッシュ (LFC)、ページ サーバーの前にある Lakebase のコンピューティング側キャッシュ。
compute_counters
| Column | タイプ | Description |
|---|---|---|
backpressure_throttling_seconds |
DOUBLE | ストレージ レイヤーがこの間隔で書き込みの調整に費やされた時間。 ゼロ以外の値は、書き込みボリュームがストレージが吸収できる量を超えたことを意味します。 |
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 |
ロング / ダブル | レプリケーションのラグ (このコンピューティングが読み取りレプリカの場合)。 |
host_logical_cpus / host_memory_total_bytes |
DOUBLE | コンピューティングのプロビジョニングされた CPU とメモリ。 |
データベース メトリック
データベースごとのアクティビティ: 行の変更、トランザクション、セッション、バキュームの正常性。 これは、テーブルの肥大化と自動バキューム信号が生きている場所です。
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 | 最も古い非frozen 行のトランザクション ID とマルチアクト ID の有効期間。 立ち上がり値は、テーブルサイズで肥大化が見える前に、真空が遅れる最も早い信号です。 |
制限事項
Warning
アプリケーションを接続するためのロールを作成すると、 CREATE ROLE ... PASSWORD '...' SQL ステートメントに入力されたパスワードが、最終的にクエリまたはステートメントの履歴に含まれる可能性があります。 代わりにUI、SDK、API、CLIでロールを作成し、サーバー側でパスワードを生成するので、クリアテキストで入力することはありません。 UIは生成されたパスワードを一度だけ表示します。 SDK、API、CLIは返してくれないので、後からパスワードを取得してください。 パスワード の取得方法をご覧ください。
ベータ期間中は、次の制限事項が適用されます。
COPY操作は現在、クエリ プランの履歴にはキャプチャされません。PL/pgSQL 関数またはプロシージャ内で実行されたクエリは、最上位レベルのステートメントとしても実行されない限り、クエリ レベルのテレメトリにはキャプチャされません。 Postgres 独自のステートメント追跡では、既定では最上位レベルのステートメントのみがカウントされます。
ブランチとエンドポイントは、"production" のような表示名ではなく、エクスポートされたテレメトリと分析情報に内部 ID (
br-odd-mud-y2icrn1hなど) で表示されます。分析情報またはテーブル行が参照するブランチまたはエンドポイントを確認する必要がある場合は、Lakebase UI で ID を相互参照します。テレメトリ キャプチャを有効にする GUC は、既存のコンピューティングに自動的に伝達されない場合があります。 可観測性を構成した後にテレメトリが表示されない場合は、プロジェクトに接続して、次のことを確認します。
SHOW neon_monitor.log_capture_enabled; SHOW databricks.o11y_exporter_enabled;両方とも
onを返す必要があります。 いずれかのoffが返された場合は、コンピューティング エンドポイントを再起動します。
次のステップ
- Insightsで問題を見つけて解決する:このデータは生の行ではなく診断として表示してください。
- ジーニーで調査する:このテレメトリーについて自分の言葉で質問してください。