Tampilan STREAMING_TIMELINE_BY_ORGANIZATION
Tampilan INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
berisi
statistik streaming gabungan per menit untuk seluruh organisasi yang terkait
dengan project saat ini.
Anda dapat membuat kueri tampilan streaming INFORMATION_SCHEMA
untuk mengambil informasi historis dan real-time tentang data streaming ke
BigQuery yang menggunakan metode tabledata.insertAll
lama, bukan BigQuery Storage Write API. Untuk mengetahui informasi selengkapnya tentang streaming data ke
BigQuery, baca Streaming data ke BigQuery.
Izin yang diperlukan
Untuk membuat kueri tampilan INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
, Anda memerlukan izin Identity and Access Management (IAM) bigquery.tables.list
untuk
organisasi.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang diperlukan:
roles/bigquery.admin
roles/bigquery.user
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.metadataViewer
roles/bigquery.resourceAdmin
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Skema
Saat Anda membuat kueri tampilan streaming INFORMATION_SCHEMA
, hasil kueri
akan berisi informasi historis dan real-time tentang streaming data ke
BigQuery. Setiap baris pada tampilan berikut mewakili statistik
untuk streaming ke tabel tertentu, yang digabungkan selama interval satu menit
mulai dari start_timestamp
. Statistik dikelompokkan berdasarkan kode error, sehingga
akan ada satu baris untuk setiap kode error yang ditemukan selama interval satu menit
untuk setiap kombinasi stempel waktu dan tabel. Permintaan yang berhasil memiliki kode
error yang ditetapkan ke NULL
. Jika tidak ada data yang di-streaming ke tabel selama jangka waktu
tertentu, tidak akan ada baris untuk stempel waktu yang sesuai bagi tabel
tersebut.
Tampilan INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_*
memiliki
skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
start_timestamp |
TIMESTAMP |
(Kolom partisi) Stempel waktu mulai dari interval 1 menit untuk statistik gabungan. |
project_id |
STRING |
(Kolom pengelompokan) ID project. |
project_number |
INTEGER |
Nomor project. |
dataset_id |
STRING |
(Kolom pengelompokan) ID set data. |
table_id |
STRING |
(Kolom pengelompokan) ID tabel. |
error_code |
STRING |
Kode error yang ditampilkan untuk permintaan yang ditentukan oleh baris ini. NULL untuk permintaan yang berhasil. |
total_requests |
INTEGER |
Jumlah total permintaan dalam interval 1 menit. |
total_rows |
INTEGER |
Jumlah total baris dari semua permintaan dalam interval 1 menit. |
total_input_bytes |
INTEGER |
Jumlah total byte dari semua baris dalam interval 1 menit. |
Retensi data
Tampilan ini berisi histori streaming selama 180 hari terakhir.
Cakupan dan sintaksis
Kueri terhadap tabel virtual ini harus menyertakan penentu region. Jika Anda tidak menentukan penentu regional, metadata akan diambil dari semua region. Tabel berikut menjelaskan cakupan region untuk tabel virtual ini:
Nama tabel virtual | Cakupan resource | Cakupan region |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION |
Organisasi yang berisi project yang ditentukan | REGION |
Opsional: PROJECT_ID
: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
REGION
: nama region set data apa pun.
Misalnya, `region-us`
.
Contoh
- Untuk membuat kueri data di multi-region AS, gunakan
`region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
- Untuk membuat kueri data di multi-region Uni Eropa, gunakan
`region-eu`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
- Untuk membuat kueri data di region asia-northeast1, gunakan
`region-asia-northeast1`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION
Untuk mengetahui daftar region yang tersedia, lihat Lokasi set data.
Contoh
Contoh 1: Kegagalan streaming terbaru
Contoh berikut menghitung perincian per menit dari total permintaan yang gagal untuk semua tabel di organisasi project dalam 30 menit terakhir, terbagi menurut kode error:
SELECT start_timestamp, error_code, SUM(total_requests) AS num_failed_requests FROM `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION WHERE error_code IS NOT NULL AND start_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 30 MINUTE) GROUP BY start_timestamp, error_code ORDER BY start_timestamp DESC;
Hasilnya mirip dengan berikut ini:
+---------------------+------------------+---------------------+ | start_timestamp | error_code | num_failed_requests | +---------------------+------------------+---------------------+ | 2020-04-15 20:55:00 | INTERNAL_ERROR | 41 | | 2020-04-15 20:41:00 | CONNECTION_ERROR | 5 | | 2020-04-15 20:30:00 | INTERNAL_ERROR | 115 | +---------------------+------------------+---------------------+
Contoh 2: Perincian per menit untuk semua permintaan dengan kode error
Contoh berikut menghitung perincian per menit untuk permintaan streaming yang berhasil dan gagal di organisasi project, terbagi dalam kategori kode error. Kueri ini dapat digunakan untuk mengisi dasbor.
SELECT start_timestamp, SUM(total_requests) AS total_requests, SUM(total_rows) AS total_rows, SUM(total_input_bytes) AS total_input_bytes, SUM( IF( error_code IN ('QUOTA_EXCEEDED', 'RATE_LIMIT_EXCEEDED'), total_requests, 0)) AS quota_error, SUM( IF( error_code IN ( 'INVALID_VALUE', 'NOT_FOUND', 'SCHEMA_INCOMPATIBLE', 'BILLING_NOT_ENABLED', 'ACCESS_DENIED', 'UNAUTHENTICATED'), total_requests, 0)) AS user_error, SUM( IF( error_code IN ('CONNECTION_ERROR','INTERNAL_ERROR'), total_requests, 0)) AS server_error, SUM(IF(error_code IS NULL, 0, total_requests)) AS total_error, FROM `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION GROUP BY start_timestamp ORDER BY start_timestamp DESC;
Hasilnya mirip dengan berikut ini:
+---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+ | start_timestamp | total_requests | total_rows | total_input_bytes | quota_error | user_error | server_error | total_error | +---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+ | 2020-04-15 22:00:00 | 441854 | 441854 | 23784853118 | 0 | 0 | 17 | 17 | | 2020-04-15 21:59:00 | 355627 | 355627 | 26101982742 | 5 | 8 | 0 | 13 | | 2020-04-15 21:58:00 | 354603 | 354603 | 26160565341 | 0 | 0 | 0 | 0 | | 2020-04-15 21:57:00 | 298823 | 298823 | 23877821442 | 0 | 2 | 0 | 2 | +---------------------+----------------+------------+-------------------+-------------+------------+--------------+-------------+
Contoh 3: Tabel dengan traffic masuk terbanyak
Contoh berikut menampilkan statistik streaming untuk 10 tabel dalam organisasi project dengan traffic masuk paling banyak:
SELECT project_id, dataset_id, table_id, SUM(total_rows) AS num_rows, SUM(total_input_bytes) AS num_bytes, SUM(total_requests) AS num_requests FROM `region-us`.INFORMATION_SCHEMA.STREAMING_TIMELINE_BY_ORGANIZATION GROUP BY project_id, dataset_id, table_id ORDER BY num_bytes DESC LIMIT 10;
Hasilnya mirip dengan berikut ini:
+----------------------+------------+-------------------------------+------------+----------------+--------------+ | project_id | dataset_id | table_id | num_rows | num_bytes | num_requests | +----------------------+------------+-------------------------------+------------+----------------+--------------+ | my-project1 | dataset1 | table1 | 8016725532 | 73787301876979 | 8016725532 | | my-project2 | dataset1 | table2 | 26319580 | 34199853725409 | 26319580 | | my-project1 | dataset2 | table1 | 38355294 | 22879180658120 | 38355294 | | my-project3 | dataset1 | table3 | 270126906 | 17594235226765 | 270126906 | | my-project2 | dataset2 | table2 | 95511309 | 17376036299631 | 95511309 | | my-project2 | dataset2 | table3 | 46500443 | 12834920497777 | 46500443 | | my-project3 | dataset2 | table4 | 25846270 | 7487917957360 | 25846270 | | my-project4 | dataset1 | table4 | 18318404 | 5665113765882 | 18318404 | | my-project4 | dataset1 | table5 | 42829431 | 5343969665771 | 42829431 | | my-project4 | dataset1 | table6 | 8771021 | 5119004622353 | 8771021 | +----------------------+------------+-------------------------------+------------+----------------+--------------+