Testo come dati, da qualsiasi luogo a qualsiasi luogo
Introduzione
Nel marzo 2024, abbiamo ascoltato AJ Steers al Unstructured Data Meetup di SF parlare di come possiamo utilizzare Airbyte e PyAirbyte per usare il testo come dati, da qualsiasi luogo a qualsiasi luogo. Questo significa che possiamo integrare e utilizzare sia dati strutturati sia non strutturati provenienti da varie fonti su diverse piattaforme.
Link al replay su YouTube del talk di AJ Steers: Guarda su YouTube.
Chi è AJ Steers e perché dovrebbe interessarti l’integrazione unificata dei dati?
AJ Steers è un architetto esperto, data engineer, sviluppatore software ed esperto di data ops. Ha progettato soluzioni end-to-end in Amazon e creato una visione per modelli di self-data quantificati. Attualmente, è staff software engineer presso Airbyte.
L’integrazione unificata dei dati fonde diversi tipi e fonti di dati in un unico sistema coeso per un’analisi e un’elaborazione efficienti. Questa capacità è cruciale per sfruttare appieno il potenziale dei tuoi dati, garantendo accesso e utilizzo senza interruzioni su varie piattaforme e applicazioni. Come afferma AJ, “Più che mai, siamo circondati da dati utilizzabili” e ora è tutta una questione di costo opportunità. Quanto tempo abbiamo per ottenere dalla fonte dati che pensiamo possano essere preziosi?
Detto questo, immergiamoci nel talk di AJ su “Text as Data, From Anywhere to Anywhere” usando Airbyte.
L’espansione di Airbyte delle fonti e destinazioni supportate
Finora l’attenzione di Airbyte si è concentrata sull’offrire affidabilità, opzioni di deployment flessibili e una solida libreria di connettori per garantire un’integrazione dei dati senza interruzioni per i tradizionali dati tabulari. Ma che dire dei dati non strutturati? AJ parla di ciò a cui il team di Airbyte ha lavorato negli ultimi sei mesi.
Negli ultimi sei mesi, andando a ritroso da marzo 2024, Airbyte ha ampliato le sue capacità per coprire le fonti di dati non strutturati oltre alle tradizionali fonti di dati tabulari. Ciò è dovuto alla crescente importanza e diffusione dei dati non strutturati nell’ecosistema dei dati di oggi. Questa espansione ha visto Airbyte andare oltre le destinazioni di tipo SQL e di tipo file per coprire destinazioni di database vettoriali come Milvus, assicurando che possiamo utilizzare efficacemente i dati in varie applicazioni. Diamo un’occhiata ad alcuni dei connettori supportati da Airbyte sia per fonti di dati strutturati sia non strutturati.
Airbyte supporta più di 350 connettori, quindi non possiamo elencarli tutti. Ma la slide sopra condivisa da AJ mostra connettori di esempio per ogni categoria di fonte e destinazione. Finora abbiamo parlato di dati non strutturati e di come Airbyte si stia espandendo per supportarli. Ma quali sono esempi reali di questi dati?
Pensa a questo blog che stai leggendo: è organizzato in forma tabellare? È un esempio lampante di dati non strutturati, composto da testo che non si inserisce ordinatamente in righe e colonne. I dati non strutturati si riferiscono a informazioni che non risiedono in un database tradizionale a righe e colonne. Includono dati come testo, immagini, video e post sui social media. Diamo un’occhiata ad alcuni dei dati non strutturati condivisi da AJ nella slide qui sotto.
Con questo tipo di dati e l’assistenza di Airbyte nel consumarli, diverse community hanno aspettative diverse da Airbyte.
Sviluppatori GenAl: Vogliono integrazioni semplificate con altri strumenti e paradigmi dell’ecosistema.
Data scientist: Vogliono librerie che possano essere eseguite in un notebook Jupyter, disaccoppiate da un data warehouse centrale.
Data engineer: Vogliono un approccio pipelines-as-code, la possibilità di eseguire pipeline di test CI e uno sviluppo senza attriti.
Sviluppatori: Vogliono sviluppare e iterare localmente, poi distribuire in seguito.
Questo dimostra che tutti vogliamo ottime librerie, buona interoperabilità e maggiore controllo. Ma tutto dipende da ciò che vuoi. Alcuni di noi vogliono qualcosa per cui poter scrivere codice e che possano controllare, mentre altri preferiscono essere meno tecnici e usare un’interfaccia utente. Tradizionalmente, questo ci ha portati su percorsi completamente diversi. Airbyte sta cercando di abbattere queste barriere per chiunque sappia eseguire e scrivere codice Python o per chiunque possa semplicemente copiare e incollare poche righe di codice usando PyAirbyte. Vediamo cos’è PyAibyte e quali sono i suoi vantaggi.
Presentazione di PyAirbyte
PyAirbyte è una libreria Python che fornisce un’interfaccia per interagire con Airbyte. Ci consente di controllare e gestire le nostre istanze Airbyte usando Python. Pensalo come un modo per portare la potenza di Airbyte a ogni sviluppatore Python.
Vantaggi di PyAirbyte
- Esegui ovunque: Possiamo eseguire PyAirbyte in un notebook Jupyter, disaccoppiato da qualsiasi data warehouse. Questo significa che possiamo usarlo in molti ambienti, non solo quelli legati a uno specifico data warehouse, dandoci la flessibilità di lavorare nell’ambiente che si adatta meglio alle nostre esigenze.
- Riduci il tempo per ottenere valore: Con PyAirbyte, possiamo costruire e iterare pipeline di dati localmente prima di distribuirle. Questo ci consente di testare e perfezionare le nostre pipeline per assicurarci che funzionino come previsto, il che aiuta a ridurre il tempo necessario per ottenere informazioni preziose dai dati.
- Prototipazione rapida: PyAirbyte non richiede un’interfaccia utente né registrazioni, quindi possiamo iniziare subito a definire le nostre pipeline di dati nel codice. Questo accelera il processo di prototipazione.
- Flessibile: Possiamo usare PyAirbyte con gli strumenti e i framework del nostro ecosistema. Questo significa che possiamo integrarlo con gli altri strumenti che stiamo già usando, rendendolo più facile da incorporare nei nostri flussi di lavoro e processi esistenti.
Ora, approfondiamo come puoi iniziare con Airbyte e PyAirbyte in pochi passaggi.
Demo dell’interfaccia utente e del codice
AJ approfondisce una sessione demo che mostra come possiamo usare la versione ospitata di Airbyte (approccio senza codice) e PyAirbyte (approccio con codice minimo) per integrare le nostre sorgenti dati con le nostre destinazioni dati.
Demo dell’approccio UI
Per chi ama cliccare pulsanti più che digitare codice, l’approccio UI è un sogno che diventa realtà. È come la “modalità facile” nel tuo videogioco preferito. Saremo brevi, poiché abbiamo già trattato come usare la versione ospitata di Airbyte per connettere una sorgente dati e una destinazione in dettaglio. L’articolo collegato va oltre la parte di integrazione e ci mostra come costruire un’app reale usando la connessione stabilita.
Ci sono quattro passaggi principali coinvolti nell’uso dell’approccio no-code per connettere una sorgente dati con una destinazione dati.
Registrati o accedi al tuo account Airbyte. Quando ti registri ti viene concessa una prova di 14 giorni.
Configura la sorgente dati.
Configura la destinazione dati.
Crea una connessione tra la sorgente e la destinazione.
Quando la connessione è stabilita, sei pronto per usare i tuoi dati. Se sei un fanatico del codice come me e preferisci l’approccio tramite codice, PyAirbyte fa al caso tuo.
Demo dell’approccio tramite codice
Recupero dei dati usando PyAirbyte in tre passaggi
Il processo di recupero dei dati usando PyAirbyte è piuttosto semplice.
Passaggio 1:
Crea una source usando la funzione get_source().
import airbyte as ab
# Check for supported sources
print(ab.get_available_connectors())
# Create the data source we want
source = ab.get_source("source-github")
Per avere una panoramica visiva di tutti i connettori supportati da Airbyte, dai un’occhiata alla pagina dei connettori supportati. Ma cosa succede se il connettore della tua sorgente non è supportato? In tal caso devi creare il tuo connettore personalizzato. Non preoccuparti, non è difficile come sembra. Devi solo seguire questa guida, poiché Airbyte offre un builder di connettori no-code che ci consente di creare connettori in meno di 10 minuti.
Passaggio 2:
Configura la nostra sorgente con set_config().
source.set_config(
{
# Replace with your desired repository
"repositories": ["FINCH285/engineering-education"],
"credentials": {
"personal_access_token": ab.get_secret(
"GITHUB_PERSONAL_ACCESS_TOKEN"
)
}
}
)
# Validate the config and credentials
source.check()
Questo serve semplicemente a indicare da dove nella sorgente vogliamo ottenere i dati e le credenziali di autorizzazione richieste.
Passaggio 3:
Leggi i dati utilizzando la read() function.
# See what streams are avilable from the source
print(source.get_available_streams())
#Pull data rom the steams we choose
read_result = source.read(
streams=['branches', 'collaborators']
)
# Use the interop option
branches_dataframe = read_result["branches"].to_pandas()
branches_sql_table = read_result["branches"].to_sql_table()
branches_lln_docs = read_result["branches"].to_documents()
L’opzione interop ci consente di convertire i dati recuperati in diverse strutture dati che si adattano meglio al nostro caso d’uso. Questo completa il processo in tre passaggi. Tuttavia, non è obbligatorio seguire i tre passaggi in modo indipendente per recuperare i dati. Airbyte supporta un processo in un solo passaggio per ottenere lo stesso risultato.
Recupero dei dati usando PyAirbyte in un singolo passaggio
Questa è la versione speedrun. Consiste nel combinare tutti e tre i passaggi in un unico passaggio.
import airbyte as ab
source = ab.get_source(
"source-github",
config={
# Replace with your desired repository
"repositories": ["FINCH285/engineering-education"],
"credentials": {
"personal_access_token": ab.get_secret(
"GITHUB_PERSONAL_ACCESS_TOKEN"
),
},
},
streams=['branches', 'collaborators']
).read()
Il codice esegue tutte e tre le operazioni in un unico passaggio. Crea la sorgente, la configura e infine legge i dati. Ora puoi usare l’opzione interop per convertire i dati recuperati in diverse strutture dati, come abbiamo fatto in precedenza. Ma se vuoi generare documenti LLM da dati tabulari, la sezione successiva ti mostra come fare.
Generazione di documenti LLM da dati tabulari
Se vuoi che i tuoi dati siano compatibili con LangChain devi convertirli in documenti LLM. Puoi quindi utilizzare questi documenti per varie attività di elaborazione del linguaggio naturale, come question-answering, riassunto o generazione di testo.
import rich
from itertools import islice
dataset = source_github.get_documents(
"issues",
title_property="title",
content_properties=["body"],
)
# Grab a few documents (skipping first 2)
documents = list(islice(dataset, 2, 5))
# Print as markdown
for document in documents:
display(rich.markdown.Markdown(document.content))
Il codice recupererà le issue di GitHub e le renderizzerà come documenti. Imposterà quindi il titolo del documento sul titolo della issue e i contenuti del documento saranno impostati sul body della issue. Userà quindi rich per stampare i documenti in formato markdown sulla console.
Con due scelte disponibili, vediamo quale approccio fa più al caso tuo.
Scegliere tra Airbyte e PyAirbyte
Se vuoi adottare l’approccio zero code ai vector store, scegli la versione hosted. Se vuoi il pieno controllo con codice minimo, scegli PyAirbyte. AJ afferma che, in teoria, ovunque Python funzioni supportato da un ambiente virtuale, PyAirbyte può funzionare. Ho preparato una tabella per aiutarti a decidere quale approccio fa per te.
| Criterio | Airbyte (UI/Hosted) | PyAirbyte |
| Approccio | No-code | Codice/Python |
| Configurazione | Semplice processo di registrazione | Richiede competenze di programmazione in Python |
| Interfaccia utente | Fornisce un’interfaccia intuitiva | Nessuna interfaccia utente, basato su codice |
| Integrazione dei dati | Adatto sia alle attività tradizionali sia a quelle moderne di integrazione dei dati (dati non strutturati, database vettoriali, ecc.) | Adatto sia alle attività tradizionali sia a quelle moderne di integrazione dei dati (dati non strutturati, database vettoriali, ecc.) |
| Flessibilità | Limitata alle opzioni fornite nell’UI | Altamente flessibile, può essere integrato con altri strumenti e framework Python |
| Ambiente | Ambiente hosted | Può essere eseguito in qualsiasi ambiente Python (ad es., Jupyter Notebook, macchina locale) |
| Distribuzione | Distribuisce le pipeline di dati nell’ambiente hosted di Airbyte | La distribuzione basata su codice può essere integrata con pipeline CI/CD |
| Prototipazione | Adatto a utenti non tecnici o alla prototipazione rapida | Ideale per utenti tecnici e prototipazione rapida |
| Curva di apprendimento | Curva di apprendimento più bassa | Richiede competenze di programmazione in Python o competenze di base di programmazione |
Dopo il confronto, puoi continuare a scegliere la tua avventura.
Funzionalità in arrivo di PyAirbyte
PyAirbyte è ancora in fase beta. Pertanto, al momento non supporta destinazioni complete, il che significa che non ha vector store come destinazioni, ma possiamo passarli a LangChain. Aj condivide un paio di aspettative che dovremmo avere dal team PyAirbyte quest’anno: Quali sono le prossime novità per PyAirbyte?
Piani per il Q2 2024:
Migliorare il supporto per Python 3.9 e 3.11
Aggiungere il supporto per Windows
Migliorare l’API per la configurazione delle origini
Abilitare l’interoperabilità con le versioni Airbyte Cloud, OSS ed Enterprise
Piani per H2 2024:
Aggiungere il supporto per il Reverse ETL
Aggiungere il supporto per le destinazioni Vector Store
Aggiungere il supporto per le destinazioni di tipo Publish
Se vuoi offrire feedback e segnalare bug, valuta la possibilità di aprire una issue sulla pagina GitHub di PyAirbyte.
Conclusione
Che tu preferisca un approccio no-code o minimal-code, Airbyte e PyAirbyte offrono soluzioni solide per integrare dati strutturati e non strutturati. AJ Steers ha delineato un buon quadro del potenziale di questi strumenti nel rivoluzionare i workflow dei dati. Per maggiori informazioni, consulta le risorse qui sotto e inizia il tuo percorso per sfruttare il testo come dati, da qualsiasi luogo a qualsiasi luogo.
Ulteriori risorse
https://zilliz.com/blog/use-milvus-and-airbyte-for-similarity-search-on-all-your-data
https://zilliz.com/blog/zilliz-introduces-upsert-kafka-connector-and-airbyte-integration
https://github.com/airbytehq/quickstarts/tree/main/pyairbyte_notebooks
Link al replay su YouTube del talk di AJ Steer: Guarda il talk su YouTube.
Continua a leggere

How Zilliz Ended Up at the Center of NVIDIA’s Unstructured Data Story at GTC 2026
If unstructured data is the context of AI, then the ceiling of AI applications will be set not just by models, but by how mature the infrastructure for unstructured data becomes.

Zilliz Cloud Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.


