Intégration data warehouse

Vos documents dans ClickHouse, quel que soit le volume

Holofin lit PDF et scans et insère chaque champ dans ClickHouse : suivez taux de revue et confiance sur des millions de documents.

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 champs chargés

!1 à vérifier

Document lu par Holofin et chargé dans ClickHouse : facture d'énergie. Exemple fictif, tous les noms et les chiffres sont inventés.

Comment ça marche

  1. 1

    Connectez ClickHouse une seule fois

    Créez un rôle avec des droits d'insertion sur un seul schéma et collez ses identifiants dans Holofin. Holofin crée la table au premier chargement ; il ne voit rien d'autre dans ClickHouse.

  2. 2

    Envoyez vos documents comme d'habitude

    Dépôt dans l'application, transfert par e-mail ou appel à l'API. Holofin classe chaque fichier, découpe les liasses en documents et lit les champs propres à chaque type.

  3. 3

    Interrogez les lignes

    Chaque champ arrive sous forme d'une ligne, avec sa confiance, la page dont il provient et un indicateur needs_review. Joignez-le à vos propres tables dans ClickHouse comme n'importe quelle autre source.

Comment le connecteur ClickHouse écrit les données

Holofin insère par lots via l'interface HTTP de ClickHouse, en TLS, dans une table ReplacingMergeTree dont la clé est le document et le champ : une correction remplace la valeur précédente. Le connecteur fonctionne avec ClickHouse Cloud et avec des serveurs auto-hébergés joignables en HTTPS.

Le seul droit dont Holofin a besoin :

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

La table écrite par Holofin

Une ligne par champ : un nouveau type de document ne modifie jamais la table. Les colonnes sont identiques d'une plateforme à l'autre ; les types suivent la nomenclature de ClickHouse.

extracted.document_fields
document_idSTRINGIdentifiant Holofin du document, stable d'un chargement à l'autre.
document_typeSTRINGLa classe attribuée au document par Holofin : supplier_invoice, payslip, bank_statement, etc.
fieldSTRINGLe nom du champ, en snake_case, tel que défini dans votre schéma d'extraction.
valueSTRINGLa valeur en texte normalisé : dates ISO, point décimal, IBAN sans espaces.
confidenceFLOATEntre 0 et 1. Le degré de certitude de Holofin sur la valeur.
pageINTEGERLa page du fichier source sur laquelle la valeur a été lue.
bboxARRAY<FLOAT>L'emplacement sur cette page : x, y, largeur, hauteur, en fractions de la page.
needs_reviewBOOLEANVrai quand la confiance est faible ou qu'une règle échoue, par exemple un solde qui ne tombe pas juste.
reviewed_bySTRINGLa personne qui a confirmé ou corrigé la valeur dans Holofin, le cas échéant.
loaded_atTIMESTAMPL'heure d'écriture de la ligne. Une correction écrit une nouvelle ligne ; la plus récente fait foi.

Interroger les données dans ClickHouse

Taux de revue et confiance médiane par type de document sur 30 jours, avec countIf et 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

Sécurité

  • Les documents sont traités en Europe, sur des serveurs OVHcloud situés en France et certifiés ISO 27001.
  • Holofin écrit uniquement dans le schéma que vous lui ouvrez. Il ne peut pas lire vos autres tables.
  • La durée de conservation des fichiers sources dans Holofin se règle par organisation, de zéro rétention des données à une conservation illimitée. Les lignes de votre entrepôt suivent vos propres règles.
  • RGPD : Holofin agit en tant que sous-traitant. Aucun document ne quitte l'Union européenne.

Questions fréquentes

Pourquoi FINAL dans les requêtes ?

La table est une ReplacingMergeTree : une valeur corrigée remplace l'ancienne lors de la fusion des parts. FINAL applique ce remplacement au moment de la requête, pour toujours lire la dernière valeur.

Est-ce compatible avec un ClickHouse auto-hébergé ?

Oui, tant que le serveur est joignable en HTTPS depuis Holofin. Créez-lui un utilisateur avec INSERT et SELECT sur cette seule table.

En combien de temps les champs apparaissent-ils dans ClickHouse ?

Quelques secondes après la lecture du document. La plupart des documents sont lus en moins d'une minute : un fichier envoyé par e-mail est en général interrogeable dans ClickHouse une minute plus tard.

Que se passe-t-il quand un relecteur corrige une valeur ?

Holofin écrit une nouvelle ligne pour ce champ avec la valeur corrigée, needs_review à false et reviewed_by renseigné. Gardez la dernière ligne par document et par champ pour obtenir l'état courant, ou conservez toutes les lignes pour une piste d'audit complète.

Puis-je choisir les champs chargés ?

Oui. Chaque type de document a son schéma d'extraction dans Holofin. Ajoutez, renommez ou supprimez des champs : les documents suivants arrivent avec les nouveaux noms. La structure de la table ne change pas.

Quels documents Holofin sait-il lire ?

Tout document d'entreprise envoyé en PDF, en scan ou en photo : factures, bulletins de paie, relevés bancaires, avis d'imposition, extraits Kbis, pièces d'identité, attestations. Holofin vérifie aussi que chaque fichier n'a pas été falsifié et peut signaler un document suspect avant qu'on se fie à ses champs.

Testez Holofin sur vos propres documents.

Chaque valeur reliée à sa position sur la page, chaque PDF analysé pour détecter les falsifications, des règles appliquées à l'ensemble du dossier.

Holofin