Data-Warehouse-Integration

Dokumente als Delta-Tabellen in Databricks

Holofin liest PDFs und Scans und schreibt jedes Feld in eine von Unity Catalog verwaltete Delta-Tabelle, direkt neben dem Rest Ihres Lakehouse.

Nordbank Hanse AG
KONTOAUSZUG
Nr. 10/2026 · Blatt 1 von 3
KontoinhaberJonas Weber
IBANDE89 3704 0044 0532 0130 00
Zeitraum01.10.2026 bis 31.10.2026
Alter Kontostand2.184,55 EUR
Summe Gutschriften4.312,00 EUR
Summe Lastschriften3.967,41 EUR
Neuer Kontostand2.592,14 EUR

✓8 Felder geladen

!1 zur Prüfung markiert

Von Holofin gelesen und in Databricks geladen: Kontoauszug. Beispieldokument, alle Namen und Zahlen sind erfunden.

So funktioniert es

  1. 1

    Databricks einmal verbinden

    Legen Sie eine Rolle mit Schreibrechten auf ein einziges Schema an und hinterlegen Sie ihre Zugangsdaten in Holofin. Holofin erstellt die Tabelle beim ersten Laden; darüber hinaus gibt Databricks nichts preis.

  2. 2

    Dokumente wie gewohnt senden

    Per Upload in der App, per E-Mail-Weiterleitung oder über die API. Holofin klassifiziert jede Datei, trennt Sammeldateien in einzelne Dokumente und liest die Felder jedes Dokumenttyps.

  3. 3

    Zeilen abfragen

    Jedes Feld landet als eigene Zeile, mit Konfidenz, Quellseite und needs_review-Flag. Databricks behandelt diese Zeilen wie jede andere Quelle: Verknüpfen Sie sie mit Ihren eigenen Tabellen.

So schreibt der Databricks-Connector

Holofin schreibt über ein SQL Warehouse in eine Delta-Tabelle in Unity Catalog und meldet sich als Service Principal mit OAuth-Machine-to-Machine-Zugangsdaten an. Die Berechtigungen gelten für ein einziges Schema, und Unity Catalog hält Lineage und Audit-Log jedes Schreibvorgangs fest.

Die einzige Berechtigung, die Holofin braucht:

-- Service principal: holofin-loader (OAuth machine-to-machine)
GRANT USE CATALOG ON CATALOG holofin TO `holofin-loader`;
GRANT USE SCHEMA, CREATE TABLE ON SCHEMA holofin.extracted TO `holofin-loader`;
GRANT MODIFY, SELECT ON SCHEMA holofin.extracted TO `holofin-loader`;

Die Tabelle, die Holofin schreibt

Eine Zeile pro Feld, damit ein neuer Dokumenttyp die Tabelle nie verändert. Die Spalten sind überall dieselben; die Datentypen tragen die Namen, die Databricks verwendet.

holofin.extracted.document_fields
document_idSTRINGHolofins Kennung des Dokuments, stabil über erneute Ladevorgänge hinweg.
document_typeSTRINGDie Klasse, die Holofin dem Dokument zugewiesen hat: supplier_invoice, payslip, bank_statement und so weiter.
fieldSTRINGDer Feldname in snake_case, wie in Ihrem Extraktionsschema definiert.
valueSTRINGDer Wert als normalisierter Text: ISO-Datumsangaben, Punkt als Dezimaltrennzeichen, IBANs ohne Leerzeichen.
confidenceFLOATZwischen 0 und 1. Wie sicher sich Holofin bei dem Wert ist.
pageINTEGERDie Seite der Quelldatei, auf der der Wert gelesen wurde.
bboxARRAY<FLOAT>Die Position auf dieser Seite: x, y, Breite, Höhe, als Anteile der Seite.
needs_reviewBOOLEANTrue, wenn die Konfidenz niedrig ist oder eine Regel fehlschlägt, etwa ein Saldo, der nicht aufgeht.
reviewed_bySTRINGWer den Wert in Holofin bestätigt oder korrigiert hat, sobald das geschehen ist.
loaded_atTIMESTAMPWann die Zeile geschrieben wurde. Korrekturen schreiben eine neue Zeile; die jüngste gilt.

Abfragen in Databricks

Kontoauszüge, deren Salden nicht aufgehen, Woche für Woche gezählt, mit FILTER und GROUP BY ALL:

-- Statements whose balances do not add up, by week loaded
SELECT
  date_trunc('WEEK', loaded_at) AS week,
  count(DISTINCT document_id) AS statements,
  count(DISTINCT document_id) FILTER (
    WHERE field = 'closing_balance' AND needs_review
  ) AS balance_mismatches
FROM holofin.extracted.document_fields
WHERE document_type = 'bank_statement'
GROUP BY ALL
ORDER BY week DESC

Sicherheit

  • Die Dokumente werden in Europa verarbeitet, auf ISO-27001-zertifizierten OVHcloud-Servern in Frankreich.
  • Holofin schreibt ausschließlich in das Schema, das Sie freigeben. Ihre übrigen Tabellen kann Holofin nicht lesen.
  • Die Aufbewahrung der Quelldateien in Holofin wird pro Organisation festgelegt, von Zero Data Retention bis unbegrenzt. Für die Zeilen in Ihrem Warehouse gelten Ihre eigenen Richtlinien.
  • DSGVO: Holofin handelt als Ihr Auftragsverarbeiter. Kein Dokument verlässt die Europäische Union.

Häufig gestellte Fragen

Kann ich die Tabelle aus einem Notebook lesen?

Ja. Es ist eine normale Delta-Tabelle: Lesen Sie sie mit Spark, SQL oder pandas aus jedem Notebook oder Job, der SELECT auf dem Schema hat.

Warum ist ein Schlusssaldo auf einem Kontoauszug markiert?

Holofin berechnet den Schlusssaldo aus dem Anfangssaldo und den gelesenen Buchungen neu. Weichen die Beträge ab, wird der Wert mit needs_review auf true geladen, unabhängig von seiner Konfidenz.

Wie schnell erscheinen die Felder in Databricks?

Wenige Sekunden, nachdem das Dokument gelesen wurde. Die meisten Dokumente sind in unter einer Minute gelesen, eine per E-Mail gesendete Datei ist in Databricks also meist eine Minute später abfragbar.

Was passiert, wenn jemand einen Wert korrigiert?

Holofin schreibt für dieses Feld eine neue Zeile mit dem korrigierten Wert, needs_review auf false und ausgefülltem reviewed_by. Behalten Sie pro Dokument und Feld die jüngste Zeile für den aktuellen Stand, oder alle Zeilen für einen vollständigen Audit-Trail.

Kann ich festlegen, welche Felder geladen werden?

Ja. Jeder Dokumenttyp hat in Holofin ein Extraktionsschema. Fügen Sie dort Felder hinzu, benennen Sie sie um oder entfernen Sie sie, und die nächsten Dokumente werden mit den neuen Namen geladen. An der Tabellenstruktur ändert sich nichts.

Welche Dokumente liest Holofin?

Jedes Geschäftsdokument als PDF, Scan oder Foto: Rechnungen, Gehaltsabrechnungen, Kontoauszüge, Steuerbescheide, Handelsregisterauszüge, Ausweise, Bescheinigungen. Holofin prüft außerdem jede Datei auf Manipulationen und kann ein verdächtiges Dokument markieren, bevor man seinen Feldern vertraut.

Testen Sie Holofin mit Ihren eigenen Dokumenten.

Jeder Wert mit der Seite verknüpft, von der er stammt, jedes PDF auf Manipulation geprüft, Regeln über die gesamte Fallakte geprüft.

Holofin