I/O gestiti da Dataflow per Apache Iceberg

Managed I/O supporta le seguenti funzionalità per Apache Iceberg:

Cataloghi
  • Hadoop
  • Hive
  • Cataloghi basati su REST
  • Metastore BigQuery (richiede Apache Beam SDK 2.62.0 o versioni successive se non utilizzi Runner v2)
Funzionalità di lettura Lettura batch
Capacità di scrittura

Per le tabelle BigQuery per Apache Iceberg, utilizza il connettore BigQueryIO con l'API BigQuery Storage. La tabella deve già esistere; la creazione dinamica della tabella non è supportata.

Requisiti

I seguenti SDK supportano I/O gestito per Apache Iceberg:

  • Apache Beam SDK per Java versione 2.58.0 o successive
  • SDK Apache Beam per Python versione 2.61.0 o successive

Configurazione

Managed I/O per Apache Iceberg supporta i seguenti parametri di configurazione:

ICEBERG Leggi

Configurazione Tipo Descrizione
table str Identificatore della tabella Iceberg.
catalog_name str Nome del catalogo contenente la tabella.
catalog_properties map[str, str] Proprietà utilizzate per configurare il catalogo Iceberg.
config_properties map[str, str] Proprietà passate alla configurazione Hadoop.
drop list[str] Un sottoinsieme di nomi di colonne da escludere dalla lettura. Se è nullo o vuoto, verranno lette tutte le colonne.
filtro str Predicato simile a SQL per filtrare i dati al momento della scansione. Esempio: "id > 5 AND status = 'ACTIVE'". Utilizza la sintassi di Apache Calcite: https://calcite.apache.org/docs/reference.html
keep list[str] Un sottoinsieme di nomi di colonna da leggere esclusivamente. Se è nullo o vuoto, verranno lette tutte le colonne.

ICEBERG Scrittura

Configurazione Tipo Descrizione
table str Un identificatore di tabella completo. Puoi anche fornire un modello per scrivere in più destinazioni dinamiche, ad esempio: `dataset.my_{col1}_{col2.nested}_table`.
catalog_name str Nome del catalogo contenente la tabella.
catalog_properties map[str, str] Proprietà utilizzate per configurare il catalogo Iceberg.
config_properties map[str, str] Proprietà passate alla configurazione Hadoop.
drop list[str] Un elenco di nomi di campi da eliminare dal record di input prima della scrittura. Si esclude a vicenda con "mantieni" e "solo".
keep list[str] Un elenco di nomi di campi da conservare nel record di input. Tutti gli altri campi vengono eliminati prima della scrittura. Si esclude a vicenda con "drop" e "only".
solo str Il nome di un singolo campo del record da scrivere. Si esclude a vicenda con "keep" e "drop".
partition_fields list[str] Campi utilizzati per creare una specifica di partizione applicata durante la creazione delle tabelle. Per un campo "foo", le trasformazioni di partizione disponibili sono:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

Per ulteriori informazioni sulle trasformazioni delle partizioni, visita la pagina https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] Proprietà della tabella Iceberg da impostare sulla tabella al momento della creazione. Per ulteriori informazioni sulle proprietà delle tabelle, visita la pagina https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 Per una pipeline di streaming, imposta la frequenza con cui vengono prodotti gli snapshot.

Passaggi successivi

Per ulteriori informazioni ed esempi di codice, consulta i seguenti argomenti: