Provides data-retrieval best practices, tool selection guidance, and performant SQL query syntax for BigQuery telemetry across INFORMATION_SCHEMA, Cloud Monitor
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-bigquery-observability-3690efc65162 ,按照其中的说明把「bigquery-observability」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
| Tool | Primary Use Cases | Strengths & Capabilities | When to Avoid / Limitations |
|---|---|---|---|
INFORMATION_SCHEMA (I_S) | Historical analysis, cohort comparison (normalized_literals), discovery of fast/slow windows, reservation/project timelines, multi-job aggregates, cost/billing tracing. | Flexible SQL querying across JOBS, JOBS_TIMELINE, and RESERVATIONS; supports custom time windows and grouping. | Avoid for high-frequency real-time polling or single-job point-lookups (can consume slots and take seconds to execute). |
REST API (jobs.api / reservation.api) | Single-job point-lookup, real-time stage bottleneck diagnosis, automated pipeline status checks, reservation/capacity commitment configuration inspection (reservations.get, reservations.list). | Zero-SQL overhead, fast REST/CLI point-lookups (bq show -j, bq show --reservation), instant access to performanceInsights, queryPlan, and structural metadata. | Avoid for aggregate analysis across thousands of jobs, cross-project historical comparison, or system timeline aggregations. |
Cloud Monitoring (Monarch / Charts) | Real-time alerting, fleet-wide dashboards, continuous slot utilization tracking, high-level SLA/SLO monitoring. | Out-of-the-box charts for slot utilization, query throughput, PENDING queue depth, and execution latency; low-latency alerting without running queries. | Avoid for SQL-level debugging, individual query text inspection, or stage-level execution detail. |
Before retrieving telemetry or running observability queries, ensure the Google Cloud environment and project are configured:
Google Cloud SDK: Ensure the Google Cloud SDK is installed and configured.
Project Selection: Set the active Google Cloud project:
gcloud config set project {project_id}
API Enablement: Ensure the BigQuery and Cloud Monitoring APIs are enabled:
gcloud services enable bigquery.googleapis.com monitoring.googleapis.com
Authentication: Authenticate the environment:
bq commands: gcloud auth logingcloud auth application-default loginGOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"Billing & IAM Roles:
{project_id}.roles/bigquery.jobUser: Running telemetry queries.roles/bigquery.resourceViewer or roles/bigquery.admin:
Organization-level jobs and reservation telemetry.roles/monitoring.viewer: Cloud Monitoring metrics.Single-Job Point-Lookup (Zero-SQL Overhead): For single-job slowness or
inspection, always prioritize the REST API or CLI (bq show -j) first. It
provides zero-SQL overhead and fast point-lookups for internal stage
bottlenecks (performanceInsights, queryPlan, shuffle spill).
bq show --location={location} -j {project_id}:{job_id}
Diagnostic Transition Logic: If no job-level issues are found (e.g. no
clear internal bottlenecks), the investigation should transition to
system-level INFORMATION_SCHEMA queries (such as JOBS_TIMELINE or
RESERVATIONS_TIMELINE) to check for broader issues like slot contention,
queueing delay, or noisy neighbors.
INFORMATION_SCHEMA QueriesEvery query against a BigQuery INFORMATION_SCHEMA view must be qualified with
either a region qualifier or a dataset qualifier, optionally prefixed by
a project qualifier.
Region-Qualified Syntax:
`{project_id}`.`region-{region}`.INFORMATION_SCHEMA.{view}
Example: `my-project`.`region-us`.INFORMATION_SCHEMA.JOBS
Applies to: Regional telemetry views (JOBS*, JOBS_TIMELINE*,
RESERVATIONS*, CAPACITY_COMMITMENTS*, TABLE_STORAGE*,
STREAMING_TIMELINE*). The client query execution location MUST match the
region-{region} qualifier (or BigQuery throws: Not found: Table {project_id}:region-{region}.INFORMATION_SCHEMA.{view} was not found in location {location}).
Dataset-Qualified Syntax:
`{project_id}`.`{dataset_id}`.INFORMATION_SCHEMA.{view}
Example: `my-project`.`analytics`.INFORMATION_SCHEMA.TABLES
Applies to: Dataset-scoped views (PARTITIONS, SEARCH_INDEXES*,
ROW_ACCESS_POLICIES). Never use region- with dataset views.
Dual-Scoped Views: Views like TABLES, COLUMNS, COLUMN_FIELD_PATHS,
VIEWS, ROUTINES, and VECTOR_INDEXES can be qualified with either
{dataset_id} or region-{region} depending on whether dataset or
region-wide analysis is required.
Project Qualifier ({project_id}): Optional. If omitted, queries
default to the project in which the query is executing. Specifying a project
qualifier on organization-level views (e.g. JOBS_BY_ORGANIZATION) has no
impact on results.
When constructing INFORMATION_SCHEMA queries, always select the scope and
view variant with the least IAM permission requirement that satisfies the
analytical need:
_BY_USER): When diagnosing queries or
sessions executed by the current user, use _BY_USER (e.g. JOBS_BY_USER,
SESSIONS_BY_USER). This requires only bigquery.jobs.list (granted via
roles/bigquery.user or roles/bigquery.jobUser), avoiding the need for
bigquery.jobs.listAll or roles/bigquery.admin.{dataset_id} rather
than region-{region} when project-level metadata access is restricted.
Dataset-scoped queries require permissions only on that target dataset._BY_PROJECT): Always start with
project-scoped views before escalating to _BY_FOLDER or
_BY_ORGANIZATION. Folder and organization queries require broad folder/org
IAM permissions (bigquery.jobs.listAll or bigquery.tables.list at the
Org/Folder node).roles/bigquery.metadataViewer (which provides bigquery.tables.get
and bigquery.tables.list) over roles/bigquery.dataViewer or
roles/bigquery.dataOwner when data read access (bigquery.tables.getData)
is not needed. (Note: INFORMATION_SCHEMA.PARTITIONS uniquely requires
bigquery.tables.getData).creation_time
(e.g., creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 3 DAY)) or usage_date to avoid full metadata table scans.AND (statement_type != 'SCRIPT' OR statement_type IS NULL) when aggregating compute spend to avoid
double-counting parent scripts and child jobs.SELECT * against INFORMATION_SCHEMA; only
project required columns.bq query --dry_run --use_legacy_sql=false "{query}" or API dryRun=true) before executing
complex queries, multi-view joins, or large scans to validate syntax and
estimate totalBytesProcessed at zero cost.region-us returns only
multi-region US metadata and does not include single regions like
region-us-central1).region-us cannot join region-eu).INFORMATION_SCHEMA query
results are never cached. On-demand queries incur a minimum of 10 MB of data
processing charges per execution.references/compute_ondemand_billable.md): Authoritative Golden CTE
(bytes_billed_cte), timezone-aligned billing date extraction (PST8PDT),
BQML CREATE_MODEL 50x multiplier rules, script wrapper deduplication, and
row-level security (RLS) masking checks.references/compute_capacity_billable.md): Query templates for auditing
billable capacity hours across 1-Year/3-Year commitments, uncovered baseline
PAYG slots, and dynamic autoscaling hours.references/storage_footprints.md): Storage snapshot queries, compression
ratio calculations, Time Travel / Fail-Safe churn, daily average GiB
time-integrals, and billing model evaluation.references/job_performance_queries.md):
Queries for evaluating individual and aggregate job performance, stage
bottleneck flags, comparable jobs via normalized literals
(query_info.query_hashes.normalized_literals), BI Engine acceleration,
metadata cache (cmeta) acceleration, and execution variance outliers.references/resource_contention_queries.md): Queries for diagnosing slot
contention, queue latency, per-minute concurrency/queue timelines, and
1-second reservation slot saturation.references/capacity_and_configuration_queries.md): Queries for evaluating
second-by-second baseline/max capacity ceilings, autoscaling saturation
timelines, and auditing configuration changes
(RESERVATION_CHANGES_BY_PROJECT, ASSIGNMENT_CHANGES_BY_PROJECT).references/schema_compute.md):
Complete column dictionary, physical units, and least-privilege IAM roles
for all compute, job, session, reservation, capacity commitment, and
assignment views (JOBS*, JOBS_TIMELINE*, SESSIONS_BY_USER,
SESSIONS_BY_PROJECT, RESERVATIONS*, RESERVATION_CHANGES*,
RESERVATIONS_TIMELINE*, CAPACITY_COMMITMENTS*,
CAPACITY_COMMITMENT_CHANGES_BY_PROJECT, ASSIGNMENTS*,
ASSIGNMENT_CHANGES_BY_PROJECT).references/schema_storage.md): Complete column dictionary, physical
units, and least-privilege IAM roles for all table storage, partition,
column, snapshot, dataset, constraint, and replication views
(TABLE_STORAGE*, TABLE_STORAGE_USAGE_TIMELINE*, TABLES*,
TABLE_OPTIONS, COLUMNS, COLUMN_FIELD_PATHS, PARTITIONS, VIEWS,
MATERIALIZED_VIEWS, TABLE_SNAPSHOTS*, TABLE_CONSTRAINTS,
KEY_COLUMN_USAGE, SCHEMATA*, SCHEMATA_OPTIONS, SCHEMATA_REPLICAS*,
SCHEMATA_LINKS, SHARED_DATASET_USAGE).references/schema_others.md): Complete column dictionary, physical units,
and least-privilege IAM roles for all remaining views including Access
Control (OBJECT_PRIVILEGES, ROW_ACCESS_POLICIES,
ROW_ACCESS_POLICY_OPTIONS), Streaming Ingestion
(STREAMING_TIMELINE_BY_PROJECT*, WRITE_API_TIMELINE_BY_PROJECT*),
Configuration Options (PROJECT_OPTIONS*, EFFECTIVE_PROJECT_OPTIONS,
ORGANIZATION_OPTIONS*, ORGANIZATION_OPTIONS_CHANGES), Insights &
Recommendations (RECOMMENDATIONS*, INSIGHTS), and Indexes/BI
Engine/Routines (SEARCH_INDEXES*, SEARCH_INDEX_COLUMNS,
SEARCH_INDEX_OPTIONS, VECTOR_INDEXES*, VECTOR_INDEX_COLUMNS,
VECTOR_INDEX_OPTIONS, BI_CAPACITIES, BI_CAPACITY_CHANGES, ROUTINES*,
, ).ROUTINE_OPTIONSPARAMETERS