Mengambil link garis keturunan dari beberapa region

Ambil link silsilah data di beberapa region Google Cloud menggunakan pendekatan fan-out. Anda menggunakan Data Lineage API untuk mengambil dan menggabungkan data silsilah dari semua wilayah yang tersedia. Hal ini berguna saat aset data Anda didistribusikan di berbagai lokasi dan Anda memerlukan tampilan terpadu dari asal-usulnya.

Prosedur

Prosedur ini membuat permintaan paralel ke endpoint projects.locations.searchLinks di setiap region. Anda mengumpulkan hasil, menangani penomoran halaman di seluruh wilayah, dan menggabungkan link yang ditemukan. Kelola regionalPageToken untuk memastikan penomoran halaman yang konsisten untuk panggilan berikutnya, dengan memperhitungkan region yang tidak dapat dijangkau.

Kode semu berikut menguraikan prosedur yang dapat Anda ikuti menggunakan Data Lineage API untuk mengambil link silsilah data dari semua region yang tersedia.

  1. Penyiapan input:
    • linksToFetch = 5 (jumlah link yang akan diambil dari semua wilayah)
    • regionalPageToken = "" (token halaman regional terakhir yang diterima digunakan untuk penomoran halaman)
  2. Buat:
    1. daftar semua region yang akan di-fan-out yang disebut regions.
    2. daftar region yang tidak dapat dijangkau yang disebut unreachable.
    3. daftar kosong link yang ditemukan bernama foundLinks.
    4. variabel nextPageToken dan nextRegionalPageToken yang kosong.
    5. variabel lastRegion yang kosong.
    6. variabel lastRegionLinksCount yang kosong.
  3. Urutkan regions menurut abjad.
  4. Parse regionalPageToken
    1. Jika kosong, lanjutkan ke langkah 5
    2. Jika tidak kosong, maka
      1. mengurai regionalPageToken dengan membaginya berdasarkan titik pertama menjadi dua segmen
      2. memfilter wilayah dengan hanya mengambil wilayah yang berada setelah (dalam urutan abjad) segmen pertama dari regionalPageToken yang diuraikan.
      3. menyimpan segmen kedua untuk menggunakannya di semua panggilan projects.locations.searchLinks.
  5. Lakukan panggilan ke projects.locations.searchLinks di setiap region dalam daftar regions secara paralel.
  6. Tunggu hingga semua permintaan selesai.
  7. Menyaring respons yang berhasil dan menyimpan nama region yang gagal dalam daftar unreachable.
  8. Untuk setiap respons (dimulai dengan wilayah pertama dalam urutan abjad)
    1. jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
      1. nama wilayah toko di lastRegion.
      2. simpan pageToken yang diterima di nextPageToken.
      3. abaikan respons yang tersisa.
    2. jika tidak
      1. nama wilayah toko di lastRegion.
      2. menyimpan link yang diterima di foundLinks (hingga linksToFetch).
      3. simpan pageToken yang diterima di nextPageToken.
      4. simpan jumlah link yang diambil dari respons di lastRegionLinksCount.
      5. jika foundLinks kurang dari linksToFetch
        1. melanjutkan pseudocode dengan respons berikutnya yang diterima dalam urutan abjad.
      6. jika foundLinks sama dengan linksToFetch
        1. membuat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi menetapkan parameter pageSize ke nilai lastRegionLinksCount.
        2. pageToken yang diterima toko di nextPageToken.
        3. Lanjutkan ke langkah 9
  9. Tambahkan awalan nextPageToken dengan lastRegion (yaitu [region].[receivedNextPageToken]) untuk membuat nextRegionalPageToken guna menangani penomoran halaman dalam panggilan berurutan.