Integrazione con data warehouse

Dai documenti a ClickHouse, a qualsiasi volume

Holofin legge PDF e scansioni e inserisce ogni campo in ClickHouse, per monitorare tassi di revisione e confidenza su milioni di documenti.

Eléctrica del Turia S.A.
FACTURA DE ELECTRICIDAD
Nº factura: ET26-0981144
TitularLucía Navarro Gil
Dirección de suministroC/ de Sueca 41, 3º, 46006 Valencia
Periodo de facturación02/09/2026 a 01/10/2026
Fecha de emisión06/10/2026
Total a pagar84,37 €

✓7 campi caricati

!1 da verificare

Documento letto da Holofin e caricato in ClickHouse: bolletta. È un esempio: tutti i nomi e i numeri sono inventati.

Come funziona

  1. 1

    Collegate ClickHouse una sola volta

    Create un ruolo con permessi di inserimento su un solo schema e incollatene le credenziali in Holofin. Holofin crea la tabella al primo caricamento e non vede nient'altro: ClickHouse gli mostra solo quello schema.

  2. 2

    Inviate i documenti come fate già

    Caricamento nell'app, inoltro via email o chiamata API. Holofin classifica ogni file, divide i plichi in singoli documenti e legge i campi di ciascun tipo.

  3. 3

    Interrogate le righe

    Ogni campo arriva come una riga, con la sua confidenza, la pagina di provenienza e un flag needs_review. ClickHouse le tratta come qualsiasi altra sorgente: unitele alle vostre tabelle.

Come scrive il connettore ClickHouse

Holofin inserisce a batch tramite l'interfaccia HTTP di ClickHouse, con TLS, in una tabella ReplacingMergeTree con chiave su documento e campo, così una correzione sostituisce il valore precedente. Funziona con ClickHouse Cloud e con server self-hosted raggiungibili in HTTPS.

L'unico permesso di cui Holofin ha bisogno:

CREATE USER holofin_loader IDENTIFIED WITH sha256_password BY '...';
GRANT INSERT, SELECT ON extracted.document_fields TO holofin_loader;

La tabella scritta da Holofin

Una riga per campo, così un nuovo tipo di documento non modifica mai la tabella. Le colonne sono le stesse su ogni piattaforma; i tipi sono quelli che usa ClickHouse.

extracted.document_fields
document_idSTRINGL'identificativo Holofin del documento, stabile tra un caricamento e l'altro.
document_typeSTRINGLa classe assegnata da Holofin al documento: supplier_invoice, payslip, bank_statement e così via.
fieldSTRINGIl nome del campo, in snake_case, come definito nel vostro schema di estrazione.
valueSTRINGIl valore come testo normalizzato: date ISO, punto come separatore decimale, IBAN senza spazi.
confidenceFLOATTra 0 e 1. Quanto Holofin è sicuro del valore.
pageINTEGERLa pagina del file di origine su cui è stato letto il valore.
bboxARRAY<FLOAT>La posizione su quella pagina: x, y, larghezza, altezza, in frazioni della pagina.
needs_reviewBOOLEANTrue quando la confidenza è bassa o una regola non è rispettata, per esempio un saldo che non quadra.
reviewed_bySTRINGChi ha confermato o corretto il valore in Holofin, una volta fatto.
loaded_atTIMESTAMPQuando è stata scritta la riga. Le correzioni scrivono una nuova riga; vale la più recente.

Interrogare i dati in ClickHouse

Tasso di revisione e confidenza mediana per tipo di documento su 30 giorni, con countIf e quantile:

-- Review rate per document type over the last 30 days
SELECT
    document_type,
    uniqExact(document_id) AS documents,
    round(countIf(needs_review) / count(), 3) AS review_rate,
    quantile(0.5)(confidence) AS median_confidence
FROM extracted.document_fields FINAL
WHERE loaded_at >= now() - INTERVAL 30 DAY
GROUP BY document_type
ORDER BY documents DESC

Sicurezza

  • I documenti sono elaborati in Europa, su server OVHcloud in Francia certificati ISO 27001.
  • Holofin scrive solo nello schema che autorizzate. Non può leggere le vostre altre tabelle.
  • La conservazione dei file di origine in Holofin si imposta per organizzazione, da zero data retention a conservazione illimitata. Le righe nel vostro data warehouse seguono le vostre policy.
  • GDPR: Holofin agisce come vostro responsabile del trattamento. Nessun documento lascia l'Unione europea.

Domande frequenti

Perché FINAL nelle query?

La tabella è una ReplacingMergeTree: un valore corretto sostituisce quello vecchio quando le part vengono unite. FINAL applica la sostituzione al momento della query, così si legge sempre il valore più recente.

Funziona con un ClickHouse self-hosted?

Sì, purché il server sia raggiungibile in HTTPS da Holofin. Basta creare un utente con INSERT e SELECT su quell'unica tabella.

In quanto tempo i campi compaiono in ClickHouse?

Pochi secondi dopo la lettura del documento. La maggior parte dei documenti viene letta in meno di un minuto, quindi un file inviato via email è di solito interrogabile in ClickHouse un minuto dopo.

Cosa succede quando un revisore corregge un valore?

Holofin scrive una nuova riga per quel campo con il valore corretto, needs_review a false e reviewed_by valorizzato. Tenete l'ultima riga per documento e campo per avere lo stato attuale, oppure tutte le righe per un audit trail completo.

Si possono scegliere i campi da caricare?

Sì. Ogni tipo di documento ha uno schema di estrazione in Holofin. Aggiungete, rinominate o rimuovete i campi lì e i documenti successivi verranno caricati con i nuovi nomi. La struttura della tabella non cambia.

Quali documenti legge Holofin?

Qualsiasi documento aziendale inviato come PDF, scansione o foto: fatture, buste paga, estratti conto, avvisi fiscali, visure camerali, documenti d'identità, certificati. Holofin verifica anche che ogni file non sia stato manomesso e può segnalare un documento sospetto prima che ci si fidi dei suoi campi.

Provi Holofin sui Suoi documenti.

Ogni valore collegato alla pagina da cui proviene, ogni PDF controllato contro le manomissioni, regole verificate sull'intera pratica.

Holofin