Menelusuri silsilah multi-region menggunakan fan-out sisi klien

Fan-out sisi klien di Knowledge Catalog (sebelumnya Dataplex Universal Catalog) memungkinkan Anda menggunakan Data Lineage API untuk mengambil dan menggabungkan link silsilah data di beberapa region Google Cloud . Membuat kueri endpoint regional secara paralel membantu Anda membangun tampilan silsilah terpadu saat aset data Anda tersebar di berbagai lokasi.

Mengapa menggunakan fan-out sisi klien?

Pendekatan fan-out sisi klien berguna saat aset data Anda didistribusikan di berbagai lokasi dan Anda ingin mengorkestrasi kueri regional di klien. Anda dapat menggunakan pendekatan ini untuk mengambil dan menggabungkan data silsilah dari semua region yang tersedia saat melacak silsilah single-hop di seluruh kumpulan region yang diketahui atau mempertahankan kompatibilitas dengan alur kerja projects.locations.searchLinks yang ada.

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

Pseudocode langkah demi langkah

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. Untuk memastikan penomoran halaman yang konsisten untuk panggilan berikutnya, kelola regionalPageToken. Hal ini 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 region)
    • regionalPageToken = "" (token halaman regional yang terakhir diterima yang 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 kosong nextPageToken dan nextRegionalPageToken.
    5. variabel kosong lastRegion.
    6. variabel kosong lastRegionLinksCount.
  3. Urutkan regions menurut abjad.
  4. Mengurai 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. simpan segmen kedua untuk digunakan dalam 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. Memfilter respons yang berhasil dan menyimpan nama region yang gagal dalam daftar unreachable.
  8. Untuk setiap respons (dimulai dengan region pertama dalam urutan alfabet)
    1. jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
      1. menyimpan nama region di lastRegion.
      2. simpan pageToken yang diterima di nextPageToken.
      3. abaikan respons yang tersisa.
    2. jika tidak
      1. menyimpan nama region di lastRegion.
      2. menyimpan link yang diterima di foundLinks (hingga linksToFetch).
      3. simpan pageToken yang diterima di nextPageToken.
      4. menyimpan jumlah link yang diambil dari respons di lastRegionLinksCount.
      5. jika foundLinks kurang dari linksToFetch
        1. lanjutkan pseudocode dengan respons berikutnya yang diterima dalam urutan alfabet.
      6. jika foundLinks sama dengan linksToFetch
        1. buat permintaan lain ke endpoint projects.locations.searchLinks di region yang sama, tetapi tetapkan parameter pageSize ke nilai lastRegionLinksCount.
        2. store menerima pageToken di nextPageToken.
        3. lanjutkan ke langkah 9
  9. Tambahkan nextPageToken dengan lastRegion (yaitu [region].[receivedNextPageToken]) untuk membuat nextRegionalPageToken guna menangani penomoran halaman dalam panggilan berturut-turut.

Langkah berikutnya