💻 Tilores Studio ist jetzt verfügbar. Führen Sie Entity Resolution lokal auf Ihrem Rechner aus.Kostenlos laden

← Zurück zum Blog
Engineering 25. Mai 2023 · 2 Min. Lesezeit

Riesige Datenmengen in eine GraphQL-API laden

Steven Renwick
Steven Renwick
CEO, Tilores
Riesige Datenmengen in eine GraphQL-API laden

Autor: Steven Renwick, CEO und Mitgründer, Tilores. Tilores entwickelt eine Echtzeit-API für Entity Resolution, deren Matcher deterministisches und probabilistisches, unscharfes Machine-Learning-Matching kombiniert; sie löst Datensätze bereits bei der Aufnahme auf, setzt sie zusammen und liefert den aufgelösten Kontext zur Abfragezeit. Dabei steht sie neben bestehenden MDM-, CDP-, Data-Warehouse- sowie KYC- und AML-Systemen, statt sie zu ersetzen.

Kurzfassung

  • Bewerten Sie die Skalierbarkeit von Entity Resolution, indem Sie die initiale Massenbeladung vom laufenden Echtzeitstrom trennen; jeder Pfad braucht seinen eigenen Plan für Aufnahme, Wiederholungen, Authentifizierung und Lasttests.
  • Der Ausgangsartikel zeigt, warum Browser-Uploads und manuelle API-Werkzeuge für große Erstbeladungen nicht ausreichen und warum Tilores das Open-Source-Werkzeug batch-graphql für Uploads und Abfragen von GraphQL-APIs gebaut hat.
  • Nutzen Sie den Artikel als Muster für Aufnahme und Tests, nicht als eigenständigen Beleg für eine allgemeingültige Obergrenze bei Datensätzen; Teams sollten Volumen, Parallelität, Matching-Komplexität und Abfrageverhalten an ihren eigenen Daten prüfen.

Inhaltsverzeichnis

  1. Leitfaden zur Skalierungsbewertung
  2. Kurze Antwort
  3. Wie sollten Teams Massenbeladung und Echtzeitaufnahme trennen?
  4. Was bietet batch-graphql über manuelle API-Clients hinaus?
  5. Was sollten Skalierungsprüfer messen?
  6. Wie sollte man mit Angaben zu Hunderten Millionen Datensätzen umgehen?
  7. Häufige Fragen

Leitfaden zur Skalierungsbewertung

FrageTilores eignet sich, wennWorauf zu achten ist
Brauchen Sie eine initiale Massenbeladung, bevor Sie Echtzeit-Datenströme anbinden?Nutzen Sie einen Batch-Pfad für die Aufnahme, wenn historische Datensätze geladen und getestet werden müssen, bevor Dienste dauerhaft Daten senden.Verlassen Sie sich bei großen Dateiladungen, Wiederholungen oder wiederholbaren Performance-Tests nicht auf manuelle API-Clients.
Stoßen manuelle Werkzeuge oder Browser-Uploads an praktische Grenzen?Nutzen Sie einen eigens gebauten Uploader, wenn Postman, Insomnia oder ein Upload-Bildschirm in der Oberfläche Volumen oder Uploaddauer nicht bewältigen.Der Ausgangsartikel nennt für das alte UI-Muster eine Browser-Upload-Grenze von 10 MB; prüfen Sie die aktuellen Werkzeuge und Grenzen in der Umgebung, die Sie evaluieren.
Brauchen Uploads Authentifizierung und Unterstützung für lange Laufzeiten?Nutzen Sie ein Aufnahmewerkzeug, das authentifizierte API-Aufrufe und die betrieblichen Details langer Uploads beherrscht.Authentifizierung, Rate Limits, Wiederholungen und Fehlerbehandlung unterscheiden sich je nach Deployment; testen Sie sie, bevor Sie einen Ladeprozess als produktionsreif betrachten.
Können gleichzeitige Anfragen das API-Verhalten belegen?Nutzen Sie parallele Anfragen, um die Aufnahme zu beschleunigen und einen kontrollierten Lasttest für den API-Pfad zu erzeugen.Parallelität kann Drosselung, Backpressure, doppelte Schreibvorgänge oder nachgelagerte Engpässe sichtbar machen; beobachten Sie diese Effekte, statt einen schnelleren Upload als einziges Erfolgsmaß zu nehmen.
Deckt die Skalierungsaussage auch den aufgelösten Kontext zur Abfragezeit ab?Testen Sie nach der Aufnahme, ob Anwendungen den benötigten aufgelösten Kontext aus der Abfrageebene abrufen und nutzen können.Verwechseln Sie den Durchsatz bei der Aufnahme nicht mit Abfrageaktualität, Match-Qualität oder Antwortlatenz; jedes davon muss einzeln gemessen werden.

Wer mit GraphQL-APIs arbeitet, verfolgt letztlich das Ziel, sie mit den eigenen Diensten zu verbinden, damit der Datenaustausch automatisch läuft. Beim Aufsetzen einer GraphQL-API und der zugehörigen Backend-Dienste möchte man jedoch zuerst alles testen, bevor man sie an andere Dienste anbindet.

Üblicherweise geschieht das mit Insomnia oder Postman: Man schickt manuell ein paar Anfragen und prüft, ob alles wie erwartet funktioniert. Wenn Sie zusätzlich sehen wollen, wie sich das System unter Last verhält, oder wenn Sie die Erstbeladung durchführen möchten, bevor Sie den Echtzeitstrom der per API zu übernehmenden Daten anbinden, brauchen Sie entweder eigenen Code für die Batch-Aufnahme oder eine andere Lösung – mit Insomnia, Postman oder ähnlichen Werkzeugen geht das nicht.

image

Bei Tilores standen wir vor demselben Problem, da wir häufig PoCs für Kunden durchführen und dabei Millionen von Datensätzen auf einmal aufnehmen müssen. Zuerst haben wir in unserer SaaS-Oberfläche einen Upload-Bildschirm gebaut, der aber für kleine Dateien und geringe Uploadgeschwindigkeit gedacht war. Andernfalls wäre der Browser abgestürzt oder eingefroren, also haben wir die Dateigröße auf 10 MB begrenzt. Für kleine Kunden reichte das, für Kunden mit mehr als einer Million Datensätzen nicht.

Nach interner Diskussion haben wir uns entschieden, ein Werkzeug zu bauen, das die Eingabedatei liest und an eine GraphQL-API hochlädt. Da alle unsere APIs Authentifizierung verlangen, mussten wir Authentifizierung und weitere notwendige Funktionen einbauen, denn Uploads können eine Weile dauern. Beim Hochladen riesiger Datenmengen möchte man außerdem die Vorteile der Parallelisierung nutzen, um den Vorgang zu beschleunigen. Mit gleichzeitigen Anfragen lässt sich die API bei Bedarf auch unter Last testen.

Das Ergebnis ist unser Open-Source-Werkzeug batch-graphql, das Sie selbst für Uploads und Abfragen von GraphQL-APIs nutzen können.

Kurze Antwort

Eine Entity-Resolution-Plattform gilt erst dann als skalierungsreif, wenn sie sowohl die initiale historische Beladung als auch die laufende Aufnahme über die API für den vorgesehenen Workload bewältigt. Für große GraphQL-gestützte Systeme heißt das: authentifizierte Batch-Aufnahme, kontrollierte parallele Anfragen, Verhalten bei Wiederholungen und Monitoring sowie Abfrageprüfungen, nachdem die Datensätze aufgelöst und zusammengesetzt wurden.

Dieser Tilores-Artikel unterstützt die Aufnahmeseite dieser Bewertung. Er beschreibt den Schritt weg von manuellen Werkzeugen und kleinen Browser-Uploads hin zu einem Batch-GraphQL-Ansatz für große Kunden-PoC-Beladungen und überlässt Obergrenzen für Datensätze im Produktivbetrieb sowie Latenzerwartungen der Prüfung in der eigenen Umgebung.

Wie sollten Teams Massenbeladung und Echtzeitaufnahme trennen?

Die initiale Massenbeladung und der laufende Echtzeitstrom sind unterschiedliche betriebliche Probleme. Die Massenbeladung überträgt historische Datensätze in das API-gestützte System, während der Echtzeitstrom dafür sorgt, dass nach der Erstbeladung neue und geänderte Datensätze eintreffen.

Diese Pfade zu trennen macht die Bewertung klarer. Teams können bei der Massenbeladung Dateigröße, Durchsatz, Authentifizierung, Wiederholungen und Fehlerbehandlung testen und anschließend prüfen, wie aktuell der aufgelöste Kontext ist, sobald Live-Dienste Datensätze senden.

Was bietet batch-graphql über manuelle API-Clients hinaus?

Manuelle API-Clients eignen sich gut, um zu prüfen, ob eine Anfrage funktioniert. Für wiederholbare Aufnahme großer Mengen sind sie schwächer, weil sie die betriebliche Arbeit rund um das Lesen von Dateien, authentifizierte Uploads, lang laufende Jobs und gleichzeitige Anfragen nicht lösen.

Der Ausgangsartikel positioniert batch-graphql als Werkzeug für Uploads und Abfragen von GraphQL-APIs. Damit ist es für Tests der Erstbeladung relevanter als eine einmalige manuelle Anfrage.

Was sollten Skalierungsprüfer messen?

Wer Skalierung bewertet, sollte Aufnahmedurchsatz, Fehlerraten, Wiederholungsverhalten, Umgang mit Authentifizierung, API-Rate-Limits, nachgelagertes Schreibverhalten, Match-Qualität und Abfrageverhalten nach der Auflösung der Datensätze messen.

Für Entity Resolution ist das aussagekräftige Ergebnis nicht allein, dass Datensätze hochgeladen wurden. Es ist, dass das System Datensätze bei der Aufnahme auflösen und zusammensetzen kann und Anwendungen den aufgelösten Kontext anschließend verlässlich abfragen können.

Wie sollte man mit Angaben zu Hunderten Millionen Datensätzen umgehen?

Behandeln Sie Aussagen über sehr große Datensatzmengen als etwas, das nachzuweisen ist, und nicht als etwas, das sich aus einem kurzen Artikel über Datenaufnahme ableiten lässt. Der Ausgangsartikel zeigt eine praktische Antwort auf PoC-Uploads im Millionenbereich, veröffentlicht aber keine allgemeingültige Obergrenze für jedes Deployment.

Eine sorgfältige Bewertung sollte repräsentative Daten, realistische Identifikatoren, die erwartete Parallelität und die tatsächlichen Abfragemuster produktiver Anwendungen verwenden.

Häufige Fragen

Wie lade ich riesige Datenmengen in eine GraphQL-API?
Nutzen Sie für große Erstbeladungen einen wiederholbaren Batch-Prozess statt manueller API-Clients oder eines Upload-Bildschirms im Browser. Der Ausgangsartikel beschreibt das Open-Source-Werkzeug batch-graphql von Tilores zum Hochladen und Abfragen von GraphQL-APIs.
Können Postman oder Insomnia große GraphQL-Aufnahmetests bewältigen?
Sie sind nützlich für manuelle Anfragen und erste Prüfungen, aber sie sind nicht für große Erstbeladungen, lang laufende Uploads oder kontrollierte parallele Aufnahmetests gemacht.
Belegt das Werkzeug batch-graphql, dass eine Plattform auf Hunderte Millionen Datensätze skaliert?
Nein. Es unterstützt den Workflow für Aufnahme und Lasttests, aber eine Skalierungsaussage muss weiterhin gegen das Datenvolumen, das Schema, die Matching-Komplexität, die Parallelität und die Abfrageanforderungen der prüfenden Seite validiert werden.
Warum ist Parallelisierung bei der GraphQL-Aufnahme nützlich?
Parallelisierung kann große Uploads beschleunigen und den API-Pfad durch gleichzeitige Anfragen unter Last testen. Teams sollten dabei auch Rate Limits, Fehler, Wiederholungen und nachgelagerte Effekte beobachten.
Wie passt Batch-Aufnahme mit Entity Resolution zusammen?
Die Batch-Aufnahme lädt die Quelldatensätze, damit die Entity-Resolution-Ebene zusammengehörige Datensätze auflösen und zusammensetzen kann. Zur Abfragezeit wird der aufgelöste Kontext dann von Anwendungen oder Diensten abgerufen und genutzt.

Tilores mit Ihren eigenen Daten evaluieren

Wählen Sie den nächsten Schritt, der zu Ihrem Evaluierungsstand passt.

Demo buchen Tilores Studio kostenlos testen

Sehen Sie, was aufgelöste Entitätsdaten für Ihr Unternehmen — und Ihre KI — leisten.