Mengambil link garis keturunan dari beberapa region

Pseudocode berikut menguraikan prosedur yang dapat Anda ikuti menggunakan Data Lineage API untuk mengambil link garis keturunan 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 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 kosong link yang ditemukan yang disebut foundLinks.
    4. variabel nextPageToken dan nextRegionalPageToken kosong.
    5. variabel lastRegion kosong.
    6. variabel lastRegionLinksCount kosong.
  3. Urutkan regions menurut abjad.
  4. Menguraikan regionalPageToken
    1. Jika kosong, lanjutkan ke langkah 5
    2. Jika tidak kosong, maka
      1. mengurai regionalPageToken dengan membaginya menurut 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 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 (dimulai dengan region pertama dalam urutan abjad)
    1. jika tidak ada link yang ditampilkan bersama dengan token halaman yang tidak kosong
      1. nama wilayah penyimpanan di lastRegion.
      2. simpan pageToken yang diterima di nextPageToken.
      3. abaikan respons yang tersisa.
    2. otherwise
      1. nama wilayah penyimpanan di lastRegion.
      2. simpan 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 abjad.
      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.