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.
- 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
lastRegionyang kosong. - variabel
lastRegionLinksCountyang kosong.
- daftar semua region yang akan di-fan-out yang disebut
- Urutkan
regionsmenurut abjad. - Parse
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. - menyimpan segmen kedua untuk menggunakannya 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 wilayah pertama dalam urutan abjad)
- jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
- nama wilayah toko di
lastRegion. - simpan pageToken yang diterima di
nextPageToken. - abaikan respons yang tersisa.
- nama wilayah toko di
- jika tidak
- nama wilayah toko di
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. - pageToken yang diterima toko di
nextPageToken. - Lanjutkan ke langkah 9
- membuat permintaan lain ke endpoint projects.locations.searchLinks
di region yang sama, tetapi menetapkan parameter
- nama wilayah toko di
- 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.