Mengonfigurasi ekspor

Halaman ini menjelaskan cara mengekspor rekaman aktivitas menggunakan Cloud Trace API dan Google Cloud CLI. Anda harus menggunakan Google Cloud CLI versi 274.0.0 atau yang lebih baru. Untuk mengetahui informasi cara mengupdate Google Cloud CLI, lihat gcloud components update .

Beberapa contoh di halaman ini dibuat menggunakan curl. Untuk mengetahui informasi tentang cara mengonfigurasi alat ini, lihat Menggunakan curl.

Untuk contoh yang menggambarkan penggunaan perintah Google Cloud CLI untuk mencantumkan, membuat, mendeskripsikan, memperbarui, dan menghapus sink, lihat Contoh menyeluruh.

Terminologi

Untuk menyederhanakan contoh di halaman ini, variabel lingkungan telah digunakan.

Contoh Google Cloud CLI menggunakan variabel lingkungan berikut:

  • SINK_ID: Nama atau ID sink. Misalnya, my-sink. Anda tidak perlu memberikan perintah yang sepenuhnya memenuhi syarat ke Google Cloud CLI, karena perintah tersebut dapat menentukan project Google Cloud Anda.
  • DESTINATION: Menyimpan nama tujuan yang sepenuhnya memenuhi syarat. ID ini harus berupa set data BigQuery. Misalnya, tujuan yang valid adalah:

    bigquery.googleapis.com/projects/DESTINATION_PROJECT_NUMBER/datasets/DATASET_ID
    

    dengan DESTINATION_PROJECT_NUMBER adalah nomor project Google Cloud tujuan, dan DATASET_ID adalah ID set data BigQuery.

Contoh curl menggunakan variabel lingkungan berikut:

  • ACCESS_TOKEN: Menyimpan token otorisasi. Untuk mengetahui informasi selengkapnya, lihat Menggunakan curl.
  • PROJECT_ID: Menyimpan ID project atau nomor project Google Cloud.
  • PROJECT_NUMBER: Menyimpan nomor project Google Cloud.
  • SINK_ID: Nama atau ID sink. Misalnya, my-sink.
  • SINK_BODY: Menyimpan deskripsi resource TraceSink. Resource TraceSink menyertakan nama dan tujuan sink. Nama ini harus menentukan nomor project Google Cloud.
  • DESTINATION: Menyimpan nama tujuan yang sepenuhnya memenuhi syarat. ID ini harus berupa set data BigQuery.

Mengonfigurasi tujuan

Untuk mengekspor rekaman aktivitas ke BigQuery, lakukan langkah berikut:

  1. Buat set data tujuan.

  2. Buat sink menggunakan Cloud Trace API atau Google Cloud CLI. Untuk mengetahui detailnya, lihat Membuat sink.

  3. Berikan peran dataEditor ke sink untuk set data BigQuery Anda:

    1. Dapatkan identitas penulis dari sink. Untuk mengetahui informasi tentang identitas penulis, lihat Properti dan terminologi sink.

      Identitas penulis untuk sink disertakan dalam data respons pada perintah create. Ini juga disertakan dalam data respons perintah daftar.

    2. Tambahkan identitas penulis sink sebagai akun layanan ke set data BigQuery Anda dan beri peran editor data BigQuery.

      • Untuk menambahkan izin menggunakan Konsol Google Cloud, lihat Mengontrol akses ke set data.

      • Untuk menambahkan izin menggunakan Google Cloud CLI, gunakan perintah add-iam-policy-binding dan berikan ID project Google Cloud Anda serta identitas penulis sink:

        gcloud projects add-iam-policy-binding ${DESTINATION_PROJECT_ID} \
          --member serviceAccount:${WRITER_IDENTITY} \
          --role roles/bigquery.dataEditor
        

        Di perintah sebelumnya, WRITER_IDENTITY adalah variabel lingkungan yang menyimpan identitas penulis sink dan DESTINATION_PROJECT_ID adalah ID project Google Cloud dari set data BigQuery.

Sink listingan

Untuk mencantumkan semua sink di project Google Cloud Anda, termasuk identitas penulisnya, panggil metode traceSinks.list.

gcloud

Untuk menampilkan daftar sink yang ditentukan dengan project default menggunakan Google Cloud CLI, jalankan perintah berikut:

gcloud alpha trace sinks list

Protokol

Untuk mencantumkan sink dengan menggunakan curl, kirim permintaan GET ke:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Misalnya, permintaan berikut mengambil semua sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Menampilkan detail sink tertentu

Untuk menampilkan detail sink tertentu yang ada di project Google Cloud Anda, panggil metode traceSinks.get.

gcloud

Untuk menampilkan detail sink yang ID-nya disimpan di SINK_ID menggunakan Google Cloud CLI, jalankan perintah berikut:

gcloud alpha trace sinks describe ${SINK_ID}

Protokol

Untuk menampilkan detail sink yang ID-nya disimpan di SINK_ID menggunakan curl, kirim permintaan GET ke:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/%{SINK_ID}

Misalnya, permintaan berikut mengambil detail sink yang ditentukan:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Membuat sink

Untuk membuat sink di project Google Cloud Anda, panggil metode traceSinks.create. Tujuan untuk sink harus berupa set data BigQuery.

Set data ini harus ada sebelum Anda membuat sink. Rekaman aktivitas tidak memverifikasi keberadaan tujuan. Baca artikel Membuat set data untuk mengetahui informasi tentang cara membuat set data BigQuery.

gcloud

Untuk membuat sink menggunakan Google Cloud CLI, jalankan perintah berikut:

gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}

Protokol

Untuk membuat sink menggunakan curl, kirim permintaan POST ke:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Misalnya, untuk membuat sink bernama test_sink guna mengekspor span rekaman aktivitas ke test_dataset dalam project dengan ${PROJECT_NUMBER}, tentukan variabel lingkungan SINK_BODY seperti yang ditunjukkan:

SINK_BODY='{"name":"projects/12345/traceSinks/test_sink","output_config":{"destination":"bigquery.googleapis.com/projects/12345/datasets/test_dataset"}}'

Untuk membuat sink, jalankan perintah berikut:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X POST -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks

Mungkin perlu waktu beberapa menit setelah Anda membuat sink sebelum span rekaman aktivitas diekspor ke tujuan.

Menghapus sink

Untuk menghapus sink yang ada di project Google Cloud Anda, panggil perintah traceSinks.delete.

gcloud

Untuk menghapus sink yang ID-nya disimpan di SINK_ID menggunakan Google Cloud CLI, jalankan perintah berikut:

gcloud alpha trace sinks delete ${SINK_ID}

Protokol

Untuk menghapus sink yang ID-nya disimpan di SINK_ID menggunakan curl, kirim permintaan DELETE ke:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Misalnya, permintaan berikut akan menghapus sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  -X DELETE https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Mengupdate sink

Untuk memperbarui sink yang ada di project Google Cloud, panggil perintah traceSinks.patch.

Set data ini harus ada sebelum Anda membuat sink. Rekaman aktivitas tidak memverifikasi keberadaan tujuan.

gcloud

Untuk memperbarui sink yang ID-nya disimpan di SINK_ID menggunakan Google Cloud CLI, jalankan perintah berikut:

gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}

Variabel lingkungan DESTINATION, menyimpan tujuan baru untuk sink.

Protokol

Untuk memperbarui tujuan sink yang ID-nya disimpan di SINK_ID menggunakan curl, kirim permintaan PATCH ke:

https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}

Misalnya, permintaan berikut memperbarui tujuan sink:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}"  --header "Content-Type: application/json"  -X PATCH -d ${SINK_BODY} https://cloudtrace.googleapis.com/v2beta1/projects/${PROJECT_NUMBER}/traceSinks/${SINK_ID}?update_mask=output_config.destination

Untuk contoh SINK_BODY, lihat contoh untuk membuat sink.

Mungkin perlu waktu beberapa menit setelah Anda mengupdate sink sebelum span rekaman aktivitas diekspor ke tujuan baru.

Contoh end-to-end

Bagian ini mengilustrasikan penggunaan perintah Google Cloud CLI untuk membuat daftar, membuat, menjelaskan, memperbarui, dan menghapus sink. Perintah dijalankan untuk sebuah project dengan ID project a-sample-project. Project ini telah dikonfigurasi sebelumnya untuk memuat 2 set data BigQuery. Terakhir, dalam contoh ini, sink dan tujuan berada dalam project yang sama. Ini bukan persyaratan. Sink dan tujuan dapat berada di project Google Cloud yang berbeda.

Langkah konfigurasi

  1. Verifikasi setelan project default:

    $ gcloud config list
    

    Contoh respons:

    [compute]
    zone = us-east1-b
    [core]
    account = user@example.com
    disable_usage_reporting = True
    project = a-sample-project
    
    Your active configuration is: [default]
    
  2. Pastikan versi Google Cloud CLI adalah versi 274.0.0:

    $ gcloud --version
    

    Contoh respons:

    Google Cloud SDK 275.0.0
    alpha 2020.01.03
    beta 2020.01.03
    bq 2.0.51
    core 2020.01.03
    gsutil 4.46
    kubectl 2020.01.03
    
  3. Identifikasi set data yang tersedia di project default:

    $ bq ls
    

    Contoh respons:

        datasetId
     ---------------
      dataset_1
      dataset_other
    

    Perhatikan bahwa saat pertama kali menggunakan perintah bq, Anda mungkin harus memilih project.

Menyiapkan variabel lingkungan

  1. Tetapkan variabel env yang digunakan oleh perintah Google Cloud CLI:

    $ PROJECT_ID=a-sample-project
    $ PROJECT_NUMBER=123456789000
    $ SINK_ID=a-sample-sink
    $ DATA_SET_NAME=dataset_1
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    

    Dalam contoh ini, tujuan dan sink berada dalam project yang sama. Ini bukan persyaratan. Sink dan tujuan dapat berada di project Google Cloud yang berbeda.

  2. Pastikan setelan:

    $ echo $SINK_ID
    a-sample-sink
    $ echo $DATA_SET_NAME
    dataset_1
    $ echo $DESTINATION
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    

Mencantumkan sink

Untuk menampilkan daftar semua sink, jalankan perintah berikut:

$ gcloud alpha trace sinks list

Karena project ini tidak memiliki sink, responsnya adalah:

Listed 0 items.

Membuat sink

  1. Untuk membuat sink, jalankan perintah berikut:

    $ gcloud alpha trace sinks create ${SINK_ID} ${DESTINATION}
    

    Contoh respons:

    You can give permission to the service account by running the following command.
    gcloud projects add-iam-policy-binding bigquery-project \
    --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com \
    --role roles/bigquery.dataEditor
    

    Perhatikan bahwa nama akun layanan menyertakan export-0000001cbe991a08-3434. Angka 0000001cbe991a08 adalah representasi heksadesimal dari PROJECT_NUMBER. Nilai 3434 adalah nilai acak.

    Sebelum menjalankan Google Cloud CLI di respons sebelumnya, Anda harus mengganti bigquery-project dengan ID project Anda.

  2. Pastikan sink sudah dibuat:

    $ gcloud alpha trace sinks list
    

    Contoh respons:

    NAME           DESTINATION                                                       WRITER_IDENTITY
    a-sample-sink  bigquery.googleapis.com/projects/123456789000/datasets/dataset_1  export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  3. Jelaskan wastafel secara mendetail:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    

    Contoh respons:

    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_1
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    
  4. Berikan izin bigquery.dataEditor ke identitas tulis sink. Perintah sink create menampilkan perintah Google Cloud CLI yang dapat Anda gunakan untuk memperbarui izin.

    Agar perintah ini berhasil, lakukan hal berikut:

    • Pastikan Anda memiliki izin untuk mengubah izin tujuan.
    • Ganti bigquery-project dengan ID project Anda:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} --member serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com --role roles/bigquery.dataEditor
    

    Perhatikan bahwa entri pertama dalam respons contoh ini adalah identitas penulis dari sink:

    Updated IAM policy for project [a-sample-project].
    bindings:
    - members:
      - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    - members:
      - user:user@example.com
      role: roles/cloudtrace.admin
    - members:
      - serviceAccount:service-123456789000@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-engine-robot.iam.gserviceaccount.com
      role: roles/container.serviceAgent
    - members:
      - serviceAccount:service-123456789000@container-analysis.iam.gserviceaccount.com
      role: roles/containeranalysis.ServiceAgent
    - members:
      - serviceAccount:service-123456789000@containerregistry.iam.gserviceaccount.com
      role: roles/containerregistry.ServiceAgent
    - members:
      - serviceAccount:123456789000-compute@developer.gserviceaccount.com
      - serviceAccount:123456789000@cloudservices.gserviceaccount.com
      role: roles/editor
    - members:
      - user:user@example.com
      role: roles/owner
    etag: BwWbqGVnShQ=
    version: 1

Mengubah tujuan sink

Dalam contoh ini, tujuan diubah dari dataset_1 menjadi dataset_other:

  1. Perbarui variabel lingkungan DATA_SET_NAME dan DESTINATION:

    $ DATA_SET_NAME=dataset_other
    $ DESTINATION=bigquery.googleapis.com/projects/${PROJECT_NUMBER}/datasets/${DATA_SET_NAME}
    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Pastikan untuk memuat ulang nilai DESTINATION setelah mengubah DATA_SET_NAME atau PROJECT_NUMBER.

  2. Ubah tujuan sink:

    $ gcloud alpha trace sinks update ${SINK_ID} ${DESTINATION}
    

    Contoh output-nya adalah:

    Updated [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Jalankan perintah deskripsi untuk melihat detail sink:

    $ gcloud alpha trace sinks describe ${SINK_ID}
    destination: bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    name: a-sample-sink
    writer_identity: export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
    

    Saat memperbarui tujuan sink, Anda tidak mengubah identitas penulis sink, sehingga Anda tidak perlu memperbarui izin untuk sink.

Menghapus sink

Untuk menghapus sink, jalankan perintah berikut:

$ gcloud alpha trace sinks delete ${SINK_ID}

Contoh output-nya adalah:

Really delete sink [a-sample-sink]?

Do you want to continue (y/N)? y

Deleted [https://cloudtrace.googleapis.com/v2beta1/projects/123456789000/traceSinks/a-sample-sink].

Anda dapat memverifikasi hasilnya dengan menjalankan perintah list:

$ gcloud alpha trace sinks list
Listed 0 items.

Validasi

Anda dapat menggunakan metrik exported_span_count Cloud Monitoring sebagai dasar untuk diagram yang menampilkan error saat data Trace diekspor ke BigQuery. Anda juga dapat membuat kebijakan pemberitahuan yang memberi tahu Anda jika terjadi error ekspor.

Membuat diagram

Agar dapat menampilkan metrik untuk resource yang dipantau dengan menggunakan Metrics Explorer, lakukan hal berikut:

  1. Di panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Metrics Explorer:

    Buka Metrics Explorer

  2. Pada elemen Metrik, luaskan menu Pilih metrik, masukkan Spans Exported to BigQuery di panel filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:
    1. Di menu Active resources, pilih Cloud Trace.
    2. Di menu Active metric criteria, pilih Bigquery_explort.
    3. Di menu Active metrics, pilih Spans Exported to BigQuery.
    4. Klik Terapkan.
  3. Konfigurasi cara data dilihat.
    1. Biarkan elemen Filter kosong. Dengan pilihan ini, diagram akan menampilkan semua data status.
    2. Dalam elemen Aggregation, setel menu pertama ke Mean, dan setel menu kedua ke status.

      Pilihan ini menghasilkan satu deret waktu untuk setiap nilai status unik. Tabel berikut menampilkan kemungkinan nilai status:

      Nilai StatusArti dan tindakan korektif
      ok Transfer data berhasil.
      bigquery_permission_denied Ekspor data ke tujuan gagal. Ekspor dapat gagal karena salah satu alasan berikut:
      • Akun layanan di sink rekaman aktivitas tidak memiliki izin untuk menulis ke set data tujuan. Lihat Izin ditolak.
      • Tujuan set data di sink tidak ada. Lihat Tujuan tidak valid.
      • Error internal BigQuery. Ini adalah error sementara dan tidak terduga.
      bigquery_quota_exceeded Project BigQuery telah melampaui kuota streaming BigQuery. Lihat Kuota habis.
      invalid_span
      internal_errors

      invalid_destination
      Error yang tidak diketahui yang mencegah ekspor data ke BigQuery. Untuk mengatasi kondisi ini, hubungi dukungan teknis atau ajukan pertanyaan di Stack Overflow. Untuk informasi selengkapnya, lihat Mendapatkan dukungan.

    Untuk informasi selengkapnya tentang cara mengonfigurasi diagram, lihat Memilih metrik saat menggunakan Metrics Explorer.

Jika sink Trace berhasil mengekspor data, diagram yang dibuat dengan setelan sebelumnya akan menampilkan satu deret waktu dengan nilai status ok. Jika terjadi error selama ekspor, deret waktu tambahan akan muncul dalam diagram.

Membuat kebijakan pemberitahuan

Untuk membuat kebijakan pemberitahuan yang terpicu jika terjadi error saat mengekspor data Cloud Trace ke BigQuery, gunakan setelan berikut.

Kolom New condition

Nilai
Resource and Metric Di menu Resources, pilih Cloud Trace.
Di menu Kategori metrik, pilih Bigquery_export.
Di menu Metrics, pilih Spans Exported to BigQuert.
Filter status != ok
Di seluruh deret waktu
Mengelompokkan deret waktu menurut
status
Di seluruh deret waktu
Agregasi deret waktu
sum
Rolling window 1 m
Rolling window function rate
Kolom Configure alert trigger

Nilai
Condition type Threshold
Alert trigger Any time series violates
Threshold position Above threshold
Threshold value 0
Retest window 1 minute

Menggunakan curl

Bagian ini menjelaskan konvensi dan penyiapan yang digunakan untuk memanggil Cloud Trace API menggunakan alat curl:

Authentication

  1. Buat variabel lingkungan untuk menyimpan ID project Google Cloud Anda:

    PROJECT_ID=my-project
    
  2. Buat variabel lingkungan untuk menyimpan nomor project Google Cloud Anda:

    PROJECT_NUMBER=12345
    
  3. Autentikasi Google Cloud CLI:

    gcloud auth login
    
  4. Tetapkan ID project Google Cloud default:

    gcloud config set project ${PROJECT_ID}
    
  5. Buat token otorisasi dan simpan dalam variabel lingkungan:

    ACCESS_TOKEN=`gcloud auth print-access-token`
    
  6. Verifikasi token akses:

    echo ${ACCESS_TOKEN}
    

    Respons terhadap perintah harus berupa string karakter yang panjang. Misalnya, pada satu sistem, respons dimulai sebagai:

    y29.GluiBjo....
    

Memanggil curl

Setiap perintah curl mencakup sekumpulan argumen, yang diikuti dengan URL resource Cloud Trace API. Argumen umum mencakup nilai yang ditentukan oleh variabel lingkungan PROJECT_ID dan ACCESS_TOKEN.

Setiap panggilan curl memiliki bentuk umum berikut:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" [OTHER_ARGS]
https://cloudtrace.googleapis.com/[API_VERSION]/projects/${PROJECT_ID}/[RESOURCE]

dengan:

  • [OTHER_ARGS] (Opsional): Hapus kolom ini jika Anda mengajukan permintaan GET. Untuk jenis permintaan HTTP lainnya, ganti holder tempat ini dengan jenis permintaan dan data tambahan apa pun yang diperlukan untuk memenuhi permintaan.
  • [API_VERSION]: Menentukan versi API.
  • [RESOURCE]: Menentukan nama resource Cloud Trace API.

Misalnya, untuk menampilkan 1.000 trace terbaru di project Anda, jalankan perintah berikut:

curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" https://cloudtrace.googleapis.com/v1/projects/${PROJECT_ID}/traces

Pemecahan masalah

Bagian ini berisi informasi pemecahan masalah yang dapat membantu Anda mengatasi kegagalan saat mengonfigurasi ekspor.

Error argumen tidak valid untuk set data

Pesan error berikut menunjukkan bahwa nama set data tidak valid:

ERROR: (gcloud.alpha.trace.sinks.create) INVALID_ARGUMENT: Request contains an invalid argument.
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: sink destination is malformed:
    bigquery.googleapis.com/projects/123456789000/datasets/a-sample-project:dataset_1.

Error ini disebabkan oleh tujuan termasuk ID project Google Cloud, a-sample-project, sebagai penentu untuk nama set data.

Untuk mengatasi error ini, ganti a-sample-project:dataset_1 dengan dataset_1, lalu berikan perintah create.

Perhatikan bahwa Anda dapat mencantumkan set data dengan perintah bq ls.

Tidak ada data trace yang diterima

Ada beberapa alasan mengapa Anda mungkin tidak menerima data trace di BigQuery.

Tujuan tidak valid

Pastikan nama set data dan nomor project sudah benar.

  • Untuk memverifikasi bahwa nama set data sudah benar. Untuk mencantumkan set data dalam project saat ini, jalankan bq ls.

    Jika Anda memilih untuk menggunakan variabel lingkungan, jalankan perintah echo untuk memastikan nilai setiap variabel sudah benar. Misalnya, pastikan tujuan Anda sudah benar:

    $ echo ${DESTINATION}
    bigquery.googleapis.com/projects/123456789000/datasets/dataset_other
    

    Karena DESTINATION bergantung pada nilai PROJECT_NUMBER dan DATA_SET_NAME, kedua variabel ini harus ditetapkan terlebih dahulu. Selain itu, jika memodifikasi salah satu dari kedua variabel ini, Anda harus me-refresh nilai yang disimpan dalam DESTINATION.

  • Untuk menentukan nomor project Anda saat ini, jalankan perintah berikut:

    gcloud projects list --filter="${PROJECT_ID}"
    

    Anda dapat menetapkan PROJECT_NUMBER secara terprogram menggunakan perintah berikut:

    $ PROJECT_NUMBER=`gcloud projects list --filter="${PROJECT_ID}" --format="value(PROJECT_NUMBER)"`
    

Izin tidak valid

Pastikan akun layanan telah diberi peran DataEditor untuk BigQuery. Anda dapat memverifikasi izin dengan menjalankan perintah berikut:

$ gcloud projects get-iam-policy ${PROJECT_ID}

Respons perintah ini menjelaskan semua binding IAM. Dalam hal ini, hasilnya adalah seperti yang ditunjukkan. Perhatikan bahwa identitas penulis sink memiliki peran dataEditor:

bindings:
- members:
  - serviceAccount:export-0000001cbe991a08-3434@gcp-sa-cloud-trace.iam.gserviceaccount.com
  role: roles/bigquery.dataEditor
- members:
  [Note, content truncated]

Kuota habis

Jika Anda menerima data lalu tiba-tiba berhenti atau data tidak lengkap, kuota streaming BigQuery Anda mungkin habis. Untuk melihat kuota, buka halaman IAM & admin, lalu pilih Kuota. Telusuri BigQuery API. Ada dua entri yang relevan: Baris streaming per menit per resource, Streaming byte per menit per resource.

Buka Quotas

Langkah selanjutnya

Untuk mengetahui informasi tentang skema BigQuery, lihat Mengekspor ke BigQuery.