Cercare la derivazione multiregionale utilizzando il fan-out lato client

Il fan-out lato client in Knowledge Catalog (in precedenza Dataplex Universal Catalog) ti consente di utilizzare l'API Data Lineage per recuperare e aggregare i link di derivazione dei dati in più regioni Google Cloud . L'esecuzione di query sugli endpoint regionali in parallelo ti aiuta a creare una visualizzazione di derivazione unificata quando i tuoi asset di dati si trovano in località diverse.

Perché utilizzare il fan-out lato client?

L'approccio di fan-out lato client è utile quando gli asset di dati sono distribuiti in posizioni diverse e vuoi orchestrare query regionali sul client. Puoi utilizzare questo approccio per recuperare e aggregare i dati di derivazione da tutte le regioni disponibili quando tracci la derivazione a singolo hop in un insieme noto di regioni o mantieni la compatibilità con i flussi di lavoro projects.locations.searchLinks esistenti.

Per saperne di più, consulta Informazioni sulla ricerca della derivazione multiregionale.

Pseudocodice passo passo

La procedura effettua richieste parallele all'endpoint projects.locations.searchLinks in ogni regione. Raccogli i risultati, gestisci l'impaginazione tra le regioni e aggreghi i link trovati. Per garantire una paginazione coerente per le chiamate successive, gestisci un regionalPageToken. In questo modo, si tiene conto delle regioni non raggiungibili.

Il seguente pseudocodice descrive una procedura che puoi seguire utilizzando l'API Data Lineage per recuperare i link di derivazione dei dati da tutte le regioni disponibili.

  1. Configurazione dell'input:
    • linksToFetch = 5 (numero di link da recuperare da tutte le regioni)
    • regionalPageToken = "" (ultimo token di pagina regionale ricevuto utilizzato per l'impaginazione)
  2. Crea:
    1. un elenco di tutte le regioni per il fan-out denominato regions.
    2. un elenco di regioni non raggiungibili denominato unreachable.
    3. un elenco vuoto di link trovati denominato foundLinks.
    4. una variabile vuota nextPageToken e nextRegionalPageToken.
    5. una variabile vuota lastRegion.
    6. una variabile vuota lastRegionLinksCount.
  3. Ordina regions in ordine alfabetico.
  4. Analizza regionalPageToken
    1. Se è vuoto, vai al passaggio 5.
    2. Se non è vuoto, allora
      1. analizza regionalPageToken suddividendolo in base al primo punto in due segmenti
      2. Filtra le regioni prendendo solo quelle che si trovano dopo (in ordine alfabetico) il primo segmento di regionalPageToken analizzato.
      3. Archivia il secondo segmento da utilizzare in tutte le chiamate projects.locations.searchLinks.
  5. Effettua una chiamata a projects.locations.searchLinks in ogni regione dell'elenco regions in parallelo.
  6. Attendi il completamento di tutte le richieste.
  7. Filtra le risposte riuscite e archivia i nomi delle regioni non riuscite nell'elenco unreachable.
  8. Per ogni risposta (iniziando dalla prima regione in ordine alfabetico)
    1. Se non sono stati restituiti link insieme a un token di pagina non vuoto
      1. nome della regione del negozio in lastRegion.
      2. Salva il pageToken ricevuto in nextPageToken.
      3. ignora le risposte rimanenti.
    2. In caso contrario:
      1. nome della regione del negozio in lastRegion.
      2. salvare i link ricevuti in foundLinks (fino a linksToFetch).
      3. Salva il pageToken ricevuto in nextPageToken.
      4. Memorizza il numero di link presi dalla risposta in lastRegionLinksCount.
      5. se foundLinks è inferiore a linksToFetch
        1. continua lo pseudocodice con la risposta ricevuta successiva in ordine alfabetico.
      6. se foundLinks è uguale a linksToFetch
        1. Effettua un'altra richiesta all'endpoint projects.locations.searchLinks nella stessa regione, ma imposta il parametro pageSize sul valore di lastRegionLinksCount.
        2. memorizza il pageToken ricevuto in nextPageToken.
        3. vai al passaggio 9
  9. Anteponi nextPageToken con lastRegion (ovvero [region].[receivedNextPageToken]) per creare nextRegionalPageToken per gestire l'impaginazione nelle chiamate consecutive.

Passaggi successivi