Presentazione di Cloudflare Basin: una piattaforma dati aperta e serverless, ora disponibile al pubblico

Marc Selwan e Micah Wylde

Lettura di 12 min

Questo post è disponibile anche in English, Deutsch, Español, Français, 日本語, 한국어, 繁體中文, 简体中文 e Português.

Durante la Birthday Week 2025, abbiamo annunciato la Cloudflare Data Platform, una suite di prodotti che acquisisce, archivia e interroga i dati analitici. Oggi annunciamo che la piattaforma è disponibile al pubblico e le abbiamo dato un nuovo nome: Cloudflare Basin.

Basin è una piattaforma di analisi dei dati serverless costruita su Apache Iceberg, lo standard aperto per i data lake, e R2 Object Storage. La famiglia Basin include:

  • Basin Pipelines, in precedenza Cloudflare Pipelines, riceve eventi da Workers, HTTP o Cloudflare Logpush, li trasforma con SQL e li scrive come tabelle o file Apache Iceberg in R2.
  • Basin Catalog, in precedenza R2 Data Catalog, gestisce i metadati Iceberg e mantiene automaticamente le tabelle per tenerle veloci ed efficienti in termini di costi.
  • Basin SQL, in precedenza R2 SQL, è il nostro motore di query SQL serverless e distribuito per interrogare le tabelle Apache Iceberg direttamente su Cloudflare.

Basin porta una piattaforma di analisi end-to-end alla Developer Platform, consentendo di raccogliere dati da un'ampia varietà di fonti (come applicazioni, infrastruttura, dispositivi e altri servizi Cloudflare) per poi interrogarli e rispondere a domande analitiche.

Abbiamo deciso di costruire una piattaforma dati l'anno scorso quando abbiamo osservato due sviluppi fondamentali che stavano cambiando il modo in cui le moderne applicazioni dati venivano realizzate. In primo luogo, Apache Iceberg è emerso come formato di tabella aperto standard, rendendo i dati portabili su quasi tutti i principali motori di query. In secondo luogo, abbiamo iniziato a vedere sviluppatori portare i propri dati analitici su R2, dove l'assenza di costi di uscita rendeva pratico ed efficiente in termini di costi accedere ai propri dati da diversi strumenti, team, regioni e provider cloud.

Così, quando abbiamo lanciato Basin in beta aperta, gli sviluppatori — tra cui i nostri team di fatturazione e infrastruttura di Cloudflare — hanno iniziato immediatamente ad adottare questi servizi per un'ampia varietà di casi d'uso: utilizzo di dati in tempo reale per ottimizzare siti di e-commerce, archiviazione a lungo termine e reportistica delle metriche di fatturazione, nonché acquisizione e interrogazione della telemetria dall'infrastruttura di Cloudflare per misurare e migliorare l'utilizzo e l'efficienza.

“Abbiamo migrato l'intero pipeline di dati della nostra azienda su Basin Pipelines, Catalog e SQL, sostituendo una complessa configurazione AWS S3 e Athena con un'architettura serverless più pulita che gestisce in modo affidabile tutti i nostri dati di eventi.” - Dax Raad, Co-Fondatore, Anomaly

I nostri early adopter ci hanno insegnato moltissimo su cosa significhi gestire una piattaforma di analisi sull'edge. Abbiamo trascorso l'ultimo anno a migliorare Basin attorno a tre aree specifiche che identificano con precisione ciò che rende unica l'analisi nella Developer Platform: velocità, apertura ed efficienza dei costi.

Basin è progettato per la velocità, sia che si tratti di iniziare a lavorare che di eseguire query di grandi dimensioni. È possibile creare un Basin Catalog, configurare un Pipeline per acquisire dati e interrogarli con Basin SQL in pochi secondi. Questo è importante man mano che vediamo sempre più applicazioni dati costruite dai prompt agli agenti di codifica, che altrimenti dovrebbero attendere e interrogare risorse o dati. Con la crescita dei set di dati, Basin Catalog compatta i metadati e i file di dati per ridurre le I/O e genera statistiche per la pianificazione delle query. Basin SQL utilizza quelle statistiche per suddividere le query in attività più piccole e distribuirle tra i Workers, mantenendo le query veloci e coerenti man mano che i set di dati crescono.

Un grande motore nello sviluppo e nell'adozione di Basin è la crescita continua che stiamo registrando nell'ecosistema aperto di Apache Iceberg. Gli sviluppatori si sono uniti attorno all'idea radicale che dovreste essere proprietari e avere il controllo dei vostri dati — separando il livello di archiviazione dal livello di elaborazione e permettendovi di utilizzare il motore di query più adatto al compito. Con Basin, è possibile leggere e scrivere i propri dati utilizzando qualsiasi motore compatibile con Iceberg, tra cui PyIceberg, DuckDB, Snowflake e Apache Spark. Questo tipo di portabilità dei dati è possibile solo con l'uscita gratuita, che consente agli sviluppatori di accedere ai propri dati in Cloudflare dall'ampia varietà di strumenti dell'ecosistema, indipendentemente dalla regione o dal provider cloud.

“Bobsled è una piattaforma di prodotti dati che i team di dati più avanzati al mondo utilizzano per creare e distribuire dati pronti per l'IA a partner, fornitori e clienti», ha dichiarato Julien Grobbelaar, Head of Platform di Bobsled. «Basin ci consente di creare prodotti dati accessibili in qualsiasi regione di ogni grande piattaforma dati e IA, con affidabilità di livello produttivo e a una frazione del costo grazie all’assenza di costi di uscita.”

Oltre all'uscita gratuita, la nostra architettura serverless ci consente di offrire ulteriori efficienze dei costi ai nostri clienti con prezzi basati sull'utilizzo. La fatturazione avviene solo quando Basin acquisisce, elabora o interroga i dati. Gli sviluppatori possono realizzare soluzioni di analisi per progetti hobbistici a un costo minimo o nullo, mentre i nostri prezzi scalano in modo economico per i casi d'uso aziendali di maggiore portata. Non vi sono costi orari né costi di infrastruttura separati di cui preoccuparsi.

Se sei pronto per iniziare, consulta il tutorial di Basin per una guida passo passo su come utilizzare Basin Pipelines per recapitare eventi a una tabella Apache Iceberg gestita da Basin Catalog e interrogarli con Basin SQL. Continua a leggere per saperne di più su Basin e sui nostri prossimi passi.

Perché Basin?

Abbiamo lanciato questi prodotti l'anno scorso come Cloudflare Data Platform, un nome che ha funzionato bene nel primo anno di disponibilità. Per il nostro lancio in GA, abbiamo deciso che avevamo bisogno di un nuovo nome che racchiudesse le nostre ambizioni per la piattaforma, collegasse tutti i prodotti e fosse un po' più incisivo.

Un bacino è il luogo dove i fiumi provenienti da molte sorgenti convergono in un unico punto. Abbiamo ritenuto che Basin catturasse perfettamente il modo in cui viene utilizzata la piattaforma: Pipelines porta i dati in Basin Catalog, mentre Basin SQL li rende immediatamente interrogabili. Un fatto curioso: circa il 20% delle terre emerse si scarica in bacini endoreici, proprio come oltre il 20% del web si trova dietro la rete di Cloudflare.

Lago Vänern, Svezia - Un bacino creato dall'attività tettonica 200-300 milioni di anni fa.

Oggi Basin è composto da tre prodotti: Pipelines, Catalog e SQL, che coprono acquisizione, archiviazione e interrogazione, e si espanderà nel tempo con ulteriori prodotti che gestiranno il resto del ciclo di vita dei dati analitici.

Basin Pipelines

Prima di poter interrogare i dati, gli eventi devono essere acquisiti, strutturati secondo uno schema e scritti nello spazio di archiviazione a oggetti. Questo è il ruolo di Basin Pipelines. Accetta eventi tramite endpoint HTTP o binding Workers, li elabora secondo una query SQL e li recapita a Basin Catalog come tabelle Apache Iceberg o a R2 come file JSON o Parquet.

Dal lancio in beta, gli utenti hanno creato decine di migliaia di Pipeline per un'ampia varietà di casi d'uso. Ad esempio, uno schema comune che osserviamo è l'utilizzo di Pipelines per trasformare i log HTTP di Cloudflare prima di archiviarli:

INSERT INTO http_logs_sink
SELECT
  EdgeResponseStatus,
  to_timestamp_micros(EdgeStartTimestamp) AS event_time,
  upper(ClientRequestMethod) AS method,
  sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;

Eseguire questa elaborazione durante l'acquisizione può ridurre significativamente l'impronta di archiviazione, ridurre il rumore proveniente da sorgenti dati dinamiche e contribuire a impedire che valori sensibili o non necessari vengano scritti.

Dalla beta, abbiamo notevolmente ampliato la scalabilità di Pipelines: ora supportiamo l'acquisizione fino a 3 GB/s per flusso. Abbiamo anche ampliato il set di funzionalità e l'integrazione con altri sistemi Cloudflare:

  • Integrazione con Cloudflare Logpush: è possibile trasformare i log di Cloudflare con SQL e archiviarli come file Parquet compressi o tabelle Iceberg, pronti per essere interrogati con Basin SQL o un altro motore.
  • I binding Workers riconoscono lo schema. L'esecuzione di wrangler types genera tipi TypeScript dallo schema di un flusso, rilevando campi mancanti e incompatibilità di tipo prima del deployment.
  • Gli errori di qualità dei dati sono visibili. La dashboard e l'API GraphQL mostrano gli eventi eliminati e distinguono tra campi mancanti, incompatibilità di tipo, errori di parsing e valori nulli.
  • L'intero percorso di acquisizione può essere gestito come Infrastructure as Code. Le risorse Terraform coprono il catalog, il flusso, il sink e il SQL che li connette.

In seguito, prevediamo di espandere ulteriormente le capacità di Pipelines, includendo:

  • Partizionamento personalizzato durante la scrittura in Basin Catalog
  • Migrazioni di schema, e configurazione aggiornabile e SQL di Pipelines aggiornabile
  • Supporto per Iceberg V3, incluso il tipo Variant per l'interrogazione efficiente di dati semi-strutturati
  • Elaborazione con stato per supportare carichi di lavoro come aggregazioni in streaming, join e viste materializzate aggiornate in modo incrementale

Basin Catalog

Basin Catalog è stato il primo prodotto che abbiamo lanciato nella famiglia l'anno scorso. Da allora, abbiamo visto migliaia di sviluppatori utilizzare Basin Catalog per casi d'uso semplici — come offrire a DuckDB un modo strutturato di accedere ai dati analitici in R2 — fino a sviluppatori che costruiscono complete piattaforme di condivisione dati aziendali, sfruttando appieno l’assenza di costi di uscita e le API semplici da usare.

Basin Catalog è il modo più semplice per iniziare con Apache Iceberg. È sufficiente eseguire:

npx wrangler basin catalog create CATALOG_NAME

Si ottiene immediatamente un catalogo REST Apache Iceberg completamente gestito che esegue automaticamente la manutenzione di routine necessaria per mantenere quelle tabelle performanti e in buona salute.

Quando abbiamo annunciato la Data Platform, Basin Catalog aveva appena aggiunto la compattazione automatica. Da allora, si è evoluto per mantenere le tabelle in buona salute man mano che i dati crescono:

  • Le politiche di compattazione per tabella consentono di scegliere le dimensioni target dei file in base allo schema di accesso di ciascuna tabella.
  • La scadenza automatica degli snapshot rimuove i vecchi snapshot Iceberg secondo una policy di conservazione, preservando al contempo un numero minimo di snapshot recenti.
  • La pulizia dei file di dati non referenziati recupera spazio di archiviazione quando gli snapshot scadono, senza richiedere un processo di manutenzione Spark separato.
  • L'ottimizzazione dei manifest consolida e raggruppa i manifest frammentati per partizione prima della compattazione, riducendo le I/O dei metadati durante la pianificazione delle query.

Abbiamo alcune funzionalità molto interessanti in sviluppo per Basin Catalog, tra cui:

  • Un nuovo modo per la compattazione di ordinare e raggruppare i dati in modo efficiente per migliorare le prestazioni delle query
  • Controlli di autorizzazione più granulari per namespace e tabelle
  • Supporto per le giurisdizioni per rispettare i requisiti di sovranità dei dati e conformità dei dati

Basin SQL

Basin SQL è il nostro motore di query SQL serverless e distribuito per le tabelle Apache Iceberg archiviate in Basin Catalog. È progettato per la lettura di grandi set di dati e si adatta automaticamente alla rete globale di Cloudflare. Non ci sono cluster o risorse da configurare, solo un'API immediatamente disponibile per voi e i vostri agenti per iniziare subito a interrogare i dati.

Al lancio della beta, Basin SQL eccelleva nel filtraggio e nell'esplorazione di grandi tabelle di eventi e serie temporali. Nell'ultimo anno, Basin SQL si è evoluto per supportare centinaia di funzioni, tra cui:

  • Aggregazioni standard e approssimate, GROUP BY, HAVING e comandi di scoperta dello schema
  • Più di 190 funzioni scalari e di aggregazione per stringhe, timestamp, espressioni regolari, crittografia, statistiche, array, mappe e struct
  • Espressioni CASE, common table expression, casting, aritmetica e EXPLAIN
  • Join interni, esterni, semi e anti; sottoquery; self-join; e query multi-tabella
  • DISTINCT, UNION, INTERSECT e EXCEPT
  • Funzioni finestra, QUALIFY, grouping set, rollup e cube
  • Una suite di funzioni JSON

Si supponga che il Pipeline recapiti eventi applicativi in una tabella e dati degli account in un'altra. È ora possibile unire quelle tabelle, aggregare l'attività per cliente, classificare i risultati con una funzione finestra e filtrare la classifica in un'unica query:

WITH account_activity AS (
  SELECT
    a.plan,
    e.account_id,
    count(*) AS events,
    approx_distinct(e.user_id) AS active_users
  FROM analytics.events e
  JOIN analytics.accounts a
    ON e.account_id = a.account_id
  WHERE e.event_time >= '2026-09-01T00:00:00Z'
  GROUP BY a.plan, e.account_id
)
SELECT
  *,
  rank() OVER (PARTITION BY plan ORDER BY events DESC) AS activity_rank
FROM account_activity
QUALIFY rank() OVER (PARTITION BY plan ORDER BY events DESC) <= 10;

È possibile eseguire Basin SQL da Wrangler o dall'API, oppure aprire l'editor integrato nella dashboard di Cloudflare. L'editor fornisce evidenziazione della sintassi e completamento automatico, un browser per namespace e tabelle, statistiche e piani di query, e risultati esportabili. Riduce a pochi secondi il percorso da una nuova tabella a una risposta utile.

Il team non si ferma qui e sta attualmente lavorando su:

  • Statistiche avanzate e pianificazione adattiva per migliorare le prestazioni e l'efficienza dei costi delle query
  • Supporto completo del linguaggio di definizione dei dati (DDL) direttamente da Basin SQL
  • Supporto per Iceberg V3, incluso il supporto per i tipi VARIANT e geospaziale

Cosa viene dopo

La nostra visione futura è che l'infrastruttura dati sarà completamente astratta. I formati di archiviazione, i prodotti e le risorse sono solo dettagli di implementazione, dettagli importanti che contribuiscono ad abilitare risultati significativi, ma che tendono a essere d'ostacolo. Stiamo costruendo verso una piattaforma in cui gli sviluppatori iniziano con domande piuttosto che con istruzioni CREATE o comandi CLI. Abbiamo gettato le basi di questa visione e ora stiamo costruendo verso di essa, includendo:

  • Supporto per l'ultima specifica Apache Iceberg su tutta la piattaforma, abilitando modi più flessibili di utilizzare i dati
  • Sorgenti e destinazioni di acquisizione con un clic, con connessioni senza configurazione tra i prodotti sviluppatori e di osservabilità di Cloudflare
  • Strategie avanzate di manutenzione adattiva delle tabelle in Basin Catalog che organizzano automaticamente i dati attorno ai reali pattern di query
  • Continua espansione della compatibilità SQL, delle prestazioni e dell'osservabilità per carichi di lavoro analitici sempre più complessi
  • Più modi per elaborare continuamente dati in tempo reale e attivare azioni basate sui segnali presenti nei dati
  • Strumenti per rispettare le norme di conformità dei dati e sovranità dei dati su tutta la piattaforma

Continueremo a costruire con standard aperti: utilizzando formati e protocolli aperti, contribuendo miglioramenti ai progetti da cui dipendiamo e assicurandoci che i vostri dati rimangano accessibili all'ecosistema più ampio.

Come iniziare

Basin Pipelines, Basin Catalog e Basin SQL sono generalmente disponibili oggi. È possibile utilizzarli insieme come piattaforma end-to-end oppure adottare le parti che si adattano all'architettura esistente.

Segui il tutorial introduttivo per acquisire eventi, creare una tabella Apache Iceberg in Basin Catalog e interrogarla con Basin SQL. Visitate la documentazione di Basin per guide ai prodotti, prezzi, limiti e integrazioni.

Le configurazioni esistenti di Cloudflare Pipelines, R2 Data Catalog e R2 SQL continueranno a funzionare.

Siamo entusiasti di sapere cosa costruirai. Condividi il tuo feedback con noi nel Cloudflare Developer Discord.