Mengekspor metadata aset ke BigQuery

Dokumen ini menunjukkan cara mengekspor snapshot aset dari organisasi, folder, atau project Anda ke tabel BigQuery, lalu menjalankan analisis data di inventaris Anda. BigQuery memberikan pengalaman seperti SQL bagi pengguna untuk menganalisis data dan menghasilkan insight yang bermakna tanpa menggunakan skrip kustom.

Sebelum memulai

  1. Aktifkan Cloud Asset Inventory API di project tempat Anda menjalankan perintah Cloud Asset Inventory.

    Aktifkan Cloud Asset Inventory API

  2. Pastikan akun Anda memiliki peran yang benar untuk memanggil Cloud Asset Inventory API. Untuk izin individual untuk setiap jenis panggilan, lihat Izin.

  3. Buat set data BigQuery untuk diekspor ke, jika Anda belum memilikinya.

Batasan

  • Saat mengekspor data tabel BigQuery, tidak semua kolom didukung oleh Inventaris Aset Cloud.

  • Kolom aset yang sering berubah seperti numBytes, numLongTermBytes, numPhysicalBytes, dan numRows mungkin diekspor dengan nilai null.

  • Mengekspor ke tabel berklaster BigQuery tidak didukung.

  • Menambahkan output ekspor ke tabel yang sudah ada tidak didukung kecuali jika Anda mengekspor ke tabel berpartisi. Tabel tujuan harus kosong atau Anda harus menimpanya. Untuk menggantinya, gunakan flag --output-bigquery-force dengan gcloud CLI, atau gunakan "force": true dengan REST API.

  • Jenis resource Google Kubernetes Engine (GKE), kecuali container.googleapis.com/Cluster dan container.googleapis.com/NodePool, tidak didukung saat diekspor ke tabel terpisah untuk setiap jenis resource.

  • Cloud Asset Inventory menolak permintaan ekspor jika permintaan sebelumnya ke tujuan yang sama dimulai kurang dari 15 menit yang lalu dan masih berjalan. Namun, jika ekspor memerlukan waktu lebih dari 15 menit untuk selesai, ekspor akan ditandai sebagai selesai dan permintaan ekspor baru ke tujuan yang sama diizinkan.

  • Jenis konten ACCESS_POLICY hanya dapat diekspor di tingkat organisasi.

  • Jika tabel yang Anda ekspor sudah ada dan sedang dalam proses diekspor, error 400 akan ditampilkan.

Casing

Nama kolom menggunakan konvensi huruf yang berbeda, bergantung pada jenis konten yang diminta dan setelan ekspor:

  • Untuk jenis konten RESOURCE saat Anda mengekspor aset ke tabel per jenis aset, tidak ada spasi di antara kata, dan huruf pertama setiap kata baru setelah kata pertama ditulis dengan huruf kapital. Contohnya, assetType

  • Untuk semua jenis konten lainnya, nama kolomnya huruf kecil, dengan spasi diganti dengan garis bawah. Misalnya, asset_type.

Skema BigQuery yang digunakan untuk ekspor

Setiap tabel BigQuery ditentukan oleh skema yang menjelaskan nama kolom, jenis data, dan informasi lainnya. Menetapkan jenis konten untuk ekspor menentukan skema untuk tabel Anda:

  • Resource atau tidak ditentukan: Jika Anda menetapkan jenis konten ke RESOURCE atau tidak menentukannya, dan menetapkan tanda per-asset-type ke false atau tidak menggunakannya, Anda akan membuat tabel BigQuery yang memiliki skema berikut.

    Skema resource

    [
      {
        "mode": "NULLABLE",
        "name": "name",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "asset_type",
        "type": "STRING"
      },
      {
        "fields": [
          {
            "mode": "NULLABLE",
            "name": "version",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "discovery_document_uri",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "discovery_name",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "resource_url",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "parent",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "data",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "location",
            "type": "STRING"
          }
        ],
        "mode": "NULLABLE",
        "name": "resource",
        "type":