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 region yang tersedia.
Mengapa menggunakan fan-out sisi klien?
Pendekatan fan-out sisi klien berguna saat aset data Anda didistribusikan di berbagai lokasi dan Anda memerlukan tampilan terpadu dari asal-usulnya.
Untuk mengetahui informasi selengkapnya, lihat Tentang penelusuran silsilah multi-region.
Kode semu langkah demi langkah
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. Untuk memastikan penomoran halaman yang konsisten untuk panggilan berikutnya, kelola regionalPageToken. Hal ini memperhitungkan wilayah 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.
- Penyiapan input:
linksToFetch= 5 (jumlah link yang akan diambil dari semua wilayah)regionalPageToken= "" (token halaman regional terakhir yang diterima digunakan untuk penomoran halaman)
- Buat:
- daftar semua region yang akan di-fan-out yang disebut
regions. - daftar region yang tidak dapat dijangkau yang disebut
unreachable. - daftar kosong link yang ditemukan bernama
foundLinks. - variabel
nextPageTokendannextRegionalPageTokenyang kosong. - variabel
lastRegionkosong. - variabel kosong
lastRegionLinksCount.
- daftar semua region yang akan di-fan-out yang disebut
- Urutkan
regionsmenurut abjad. - Urai
regionalPageToken- Jika kosong, lanjutkan ke langkah 5
- Jika tidak kosong, maka
- mengurai
regionalPageTokendengan membaginya berdasarkan titik pertama menjadi dua segmen - memfilter wilayah dengan hanya mengambil wilayah yang berada setelah (dalam urutan abjad) segmen pertama dari
regionalPageTokenyang diuraikan. - simpan segmen kedua untuk digunakan di semua panggilan projects.locations.searchLinks.
- mengurai
- Lakukan panggilan ke projects.locations.searchLinks
di setiap region dalam daftar
regionssecara paralel. - Tunggu hingga semua permintaan selesai.
- Menyaring respons yang berhasil dan menyimpan nama region yang gagal dalam daftar
unreachable. - Untuk setiap respons (dimulai dengan region pertama dalam urutan abjad)
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- nama wilayah toko dalam
lastRegion. - simpan pageToken yang diterima di
nextPageToken. - abaikan respons lainnya.
- nama wilayah toko dalam
- jika tidak
- nama wilayah toko dalam
lastRegion. - menyimpan link yang diterima di
foundLinks(hinggalinksToFetch). - simpan pageToken yang diterima di
nextPageToken. - simpan jumlah link yang diambil dari respons di
lastRegionLinksCount. - jika
foundLinkskurang darilinksToFetch- melanjutkan pseudocode dengan respons berikutnya yang diterima dalam urutan abjad.
- jika
foundLinkssama denganlinksToFetch- membuat permintaan lain ke endpoint projects.locations.searchLinks
di region yang sama, tetapi menetapkan parameter
pageSizeke nilailastRegionLinksCount. - store menerima pageToken di
nextPageToken. - Lanjutkan ke langkah 9
- membuat permintaan lain ke endpoint projects.locations.searchLinks
di region yang sama, tetapi menetapkan parameter
- nama wilayah toko dalam
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- Tambahkan awalan
nextPageTokendenganlastRegion(yaitu[region].[receivedNextPageToken]) untuk membuatnextRegionalPageTokenguna menangani penomoran halaman dalam panggilan berurutan.
Langkah berikutnya
Pelajari lebih lanjut penelusuran silsilah multiregion.
Pelajari cara menelusuri silsilah multi-region menggunakan otomatisasi sisi server.
Pelajari silsilah data lebih lanjut.