Managed I/O supporta le seguenti funzionalità per Apache Iceberg:
| Cataloghi |
|
|---|---|
| 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`. |
| autosharding |
boolean
|
Consente il partizionamento dinamico per regolare automaticamente il numero di writer paralleli in base al volume di dati. Gestisce la distorsione dei dati suddividendo ulteriormente le partizioni in più shard per evitare colli di bottiglia durante le scritture a velocità effettiva elevata. Disponibile solo con la modalità di distribuzione "hash". |
| 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. |
| direct_write_byte_limit |
int32
|
Per una pipeline di flussi di dati, imposta il limite per il lift dei bundle nel percorso di scrittura diretta. |
| distribution_mode |
str
|
Definisce la distribuzione dei dati di scrittura. Distribuzioni supportate: - Nessuna: non rimescola le righe (impostazione predefinita) - Hash: rimescola le righe in base alla chiave di partizione prima di scrivere i dati |
| drop |
list[str]
|
Un elenco di nomi di campi da eliminare dal record di input prima della scrittura. Si esclude a vicenda con "keep" e "only". |
| 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 che viene applicata quando vengono create le tabelle. Per un campo "foo", le trasformazioni di partizione disponibili sono:
Per ulteriori informazioni sulle trasformazioni delle partizioni, visita la pagina https://iceberg.apache.org/spec/#partition-transforms. |
| sort_fields |
list[str]
|
Campi utilizzati per impostare l'ordine di ordinamento della tabella, applicato quando viene creata la tabella. Ogni voce ha il formato <term> [asc|desc] [nulls first|nulls last], dove <term> è un nome di campo o una delle trasformazioni della partizione (ad es. bucket(col, 4), day(ts)). La direzione è predefinita su crescente; l'ordine dei valori null è predefinito su nulls-first per crescente e nulls-last per decrescente. Nota: questa operazione imposta l'ordine di ordinamento dichiarato della tabella come metadati; non fa sì che Beam ordini fisicamente i record prima della scrittura.
Per ulteriori informazioni sugli ordini di ordinamento, visita la pagina https://iceberg.apache.org/spec/#sort-orders.
|
| 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 flussi di dati, imposta la frequenza con cui vengono prodotti gli snapshot. |
Passaggi successivi
Per ulteriori informazioni ed esempi di codice, consulta i seguenti argomenti:
- Leggere da Apache Iceberg
- Lettura da Apache Iceberg (interfaccia utente di Job Builder)
- Scrivi su Apache Iceberg