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 informasi tentang cara mengonfigurasi alat ini, lihat Menggunakan curl.

Untuk contoh yang mengilustrasikan penggunaan perintah Google Cloud CLI guna 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. Contoh, my-sink. Anda tidak perlu memberikan perintah yang sepenuhnya memenuhi syarat ke Google Cloud CLI, karena perintah ini dapat menentukan project Google Cloud Anda.
  • DESTINATION: Menyimpan nama tujuan yang sepenuhnya memenuhi syarat. Set data 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 projectGoogle Cloud tujuan, dan DATASET_ID adalah ID set data BigQuery.

Contoh curl menggunakan variabel lingkungan berikut:

  • ACCESS_TOKEN: Menyimpan token otorisasi. Untuk 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. Contoh, my-sink.
  • SINK_BODY: Menyimpan deskripsi resource TraceSink. Resource TraceSink menyertakan nama dan tujuan sink. Nama tersebut harus menentukan nomor project Google Cloud .
  • DESTINATION: Menyimpan nama tujuan yang sepenuhnya memenuhi syarat. Set data ini harus berupa set data BigQuery.

Mengonfigurasi tujuan

Untuk mengekspor rekaman aktivitas ke BigQuery, lakukan hal 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 informasi tentang identitas penulis, lihat Properti dan terminologi sink.

      Identitas penulis untuk sink disertakan dalam data respons ke perintah create. Data ini juga disertakan dalam data respons perintah list.

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

      • 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 Clouddan identitas penulis sink:

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

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

Mencantumkan sink

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

gcloud

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

gcloud alpha trace sinks list

Protokol

Untuk menampilkan daftar sink 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, 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 , panggil metode traceSinks.create. Tujuan sink harus berupa set data BigQuery.

Set data ini harus ada sebelum Anda membuat sink. Rekaman aktivitas tidak memverifikasi keberadaan tujuan. Lihat 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 , 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}

Memperbarui sink

Untuk mengupdate 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 mengupdate 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 memperbarui sink sebelum span rekaman aktivitas diekspor ke tujuan baru.

Contoh end-to-end

Bagian ini mengilustrasikan penggunaan perintah Google Cloud CLI untuk mencantumkan, membuat, menjelaskan, mengupdate, dan menghapus sink. Perintah dieksekusi untuk project dengan ID project a-sample-project. Project ini telah dikonfigurasi sebelumnya untuk berisi 2 set data BigQuery. Terakhir, dalam contoh ini, sink dan tujuan berada dalam project yang sama. Hal ini tidak diwajibkan. Penampung dan tujuan dapat berada di projectGoogle 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 Google Cloud CLI setidaknya 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 perlu 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. Hal ini tidak diwajibkan. Penampung dan tujuan dapat berada di projectGoogle 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 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 dalam respons sebelumnya, Anda harus mengganti bigquery-project dengan ID project Anda.

  2. Pastikan sink telah 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 detail wastafel:

    $ 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 tindakan 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 contoh respons ini adalah identitas penulis 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. Update 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 untuk memberi tahu Anda jika terjadi error ekspor.

Membuat diagram

Untuk melihat metrik untuk resource yang dimonitor menggunakan Metrics Explorer, lakukan langkah berikut:

  1. Di konsol Google Cloud , buka halaman  Metrics explorer:

    Buka Metrics explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Pada elemen Metric, luaskan menu Select a metric, 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 categories, pilih Bigquery_explort.
    3. Di menu Active metrics, pilih Spans Exported to BigQuery.
    4. Klik Terapkan.
  3. Konfigurasi cara data dilihat.
    1. Kosongkan elemen Filter. Dengan pilihan ini, diagram akan menampilkan semua data status.
    2. Di elemen Aggregation, tetapkan menu pertama ke Mean, dan tetapkan 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-nya. Lihat Kuota habis.
      invalid_span
      internal_errors

      invalid_destination
      Error yang tidak diketahui mencegah ekspor data ke BigQuery. Untuk mengatasi kondisi ini, hubungi dukungan teknis atau ajukan pertanyaan di Stack Overflow. Untuk informasi, 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 di 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 Metric categories, 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:

Autentikasi

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

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

    PROJECT_NUMBER=12345
    
  3. Lakukan 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, di satu sistem, respons dimulai sebagai:

    y29.GluiBjo....
    

Memanggil curl

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

Setiap pemanggilan 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 mengeluarkan permintaan GET. Untuk jenis permintaan HTTP lainnya, ganti placeholder ini dengan jenis permintaan dan data tambahan yang diperlukan untuk memenuhi permintaan.
  • [API_VERSION]: Tentukan versi API.
  • [RESOURCE]: Tentukan nama resource Cloud Trace API.

Misalnya, untuk mencantumkan 1.000 rekaman aktivitas terbaru dalam 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 menyelesaikan 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 yang menyertakan 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 rekaman aktivitas yang diterima

Ada beberapa alasan mengapa Anda mungkin tidak menerima data rekaman aktivitas 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, pastikan nilai setiap variabel sudah benar dengan mengeluarkan perintah echo. 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 mengubah salah satu dari dua variabel ini, Anda harus memuat ulang nilai yang disimpan di 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 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 telah menerima data dan tiba-tiba berhenti atau data Anda tidak lengkap, Anda mungkin telah menghabiskan kuota streaming BigQuery. Untuk melihat kuota Anda, buka halaman IAM & admin, lalu pilih Kuota. Telusuri BigQuery API. Ada dua entri yang relevan: Streaming baris per menit per resource, Streaming byte per menit per resource.

Buka Kuota

Langkah selanjutnya

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