Menelusuri silsilah multi-region menggunakan fan-out sisi klien

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

Untuk mengetahui informasi selengkapnya, lihat Tentang penelusuran silsilah multi-region.

Prosedur

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

Pseudocode 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 region)
    • regionalPageToken = "" (token halaman regional terakhir yang diterima dan 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 link yang ditemukan yang kosong yang disebut foundLinks.
    4. variabel kosong nextPageToken dan nextRegionalPageToken.
    5. variabel kosong lastRegion.
    6. variabel kosong lastRegionLinksCount.
  3. Urutkan regions menurut abjad.
  4. Uraikan regionalPageToken
    1. Jika kosong, lanjutkan ke langkah 5
    2. Jika tidak kosong,
      1. uraikan regionalPageToken dengan membaginya berdasarkan titik pertama menjadi dua segmen
      2. filter region dengan hanya mengambil region yang berada setelah (dalam urutan abjad) segmen pertama dari regionalPageToken yang diuraikan.
      3. simpan 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. Filter respons yang berhasil dan simpan nama region yang gagal dalam daftar unreachable.
  8. Untuk setiap respons (mulai dengan region pertama dalam urutan abjad)
    1. jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
      1. simpan nama region di lastRegion.
      2. simpan pageToken yang diterima di nextPageToken.
      3. abaikan respons yang tersisa.
    2. jika tidak
      1. simpan nama region di lastRegion.
      2. simpan 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. lanjutkan pseudocode dengan respons berikutnya yang diterima dalam urutan abjad.
      6. jika foundLinks sama dengan linksToFetch
        1. buat permintaan lain ke projects.locations.searchLinks endpoint di region yang sama, tetapi tetapkan parameter pageSize ke nilai lastRegionLinksCount.
        2. simpan pageToken yang diterima di nextPageToken.
        3. lanjutkan ke langkah 9
  9. Tambahkan nextPageToken dengan lastRegion (yaitu [region].[receivedNextPageToken]) untuk membuat nextRegionalPageToken guna menangani penomoran halaman dalam panggilan berurutan.

Langkah berikutnya