Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Laden Ihrer Daten

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Beschreiben der Vorteile schlanker Datenladevorgänge in Salesforce
  • Erläutern der Vorteile der Bulk-API gegenüber der SOAP-API beim Laden großer Datenmengen
  • Beschleunigen des Ladens großer Datensets durch Aussetzen von Datenvalidierung und -anreicherung

Schlankes Laden

Unabhängig davon, ob wir von der Migration großer Datenvolumen oder von laufenden Synchronisierungsvorgängen großer Datenmengen sprechen – die beste Vorgehensweise ist, die Auswirkungen zu minimieren, die diese Aktionen auf geschäftskritische Vorgänge haben. Eine clevere Strategie, dies zu erreichen, ist das schlanke Laden, das nur die Daten und Konfigurationen beinhaltet, die Sie für Ihre geschäftskritischen Vorgänge benötigen.

Was beinhaltet schlankes Laden?

  • Identifizieren der geschäftskritischen Vorgänge, bevor Benutzer zu Salesforce wechseln
  • Identifizieren des minimalen Datensets und der Mindestkonfiguration, die für die Implementierung dieser Vorgänge erforderlich sind
  • Definieren einer Daten- und Konfigurationsstrategie auf der Grundlage der von Ihnen identifizierten Anforderungen
  • Schnellstmögliches Laden der Daten, um den Umfang der Synchronisation zu reduzieren

Wenn Sie sich für Ihre Datenlade- und Konfigurationsstrategie entscheiden, sollten Sie diese Einrichtungsoptionen berücksichtigen, die Ihnen ermöglichen, unkritische Prozesse zu verschieben und das Laden großer Datenvolumen zu beschleunigen.

Organisationsweite Freigabestandardeinstellungen: Wenn Sie Daten mit einem privaten Freigabemodell laden, berechnet das System die Freigabe als die Datensätze, die hinzugefügt werden. Wenn Sie mit einem Freigabemodell mit öffentlichem Lese-/Schreibzugriff laden, können Sie diese Verarbeitung bis nach dem Cutover verschieben

Komplexe Objektbeziehungen: Je mehr Nachschlagefelder Sie für ein Objekt definiert haben, desto mehr Prüfungen muss das System beim Laden der Daten durchführen. Wenn Sie jedoch einige dieser Beziehungen in einer späteren Phase einrichten können, geht das Laden schneller.

Freigaberegeln: Wenn Sie vor dem Laden von Daten inhaberbasierte Freigaberegeln konfiguriert haben, müssen für jeden eingefügten Datensatz Freigabeberechnungen durchgeführt werden, wenn der Inhaber des Datensatzes zu einer Rolle oder Gruppe gehört, die die freizugebenden Daten definiert. Wenn Sie vor dem Laden von Daten kriterienbasierte Freigaberegeln konfiguriert haben, sind auch für jeden Datensatz mit Feldern, die den Regelauswahlkriterien entsprechen, Freigabeberechnungen erforderlich.

Workflow-Regeln, -Aktionen und -Auslöser: Dies sind leistungsstarke Tools, die dazu beitragen sicherzustellen, dass die im täglichen Betrieb eingegebenen Daten sauber sind und entsprechende Beziehungen zwischen Datensätzen umfassen. Sie können die Verarbeitung aber auch verlangsamen, wenn sie beim Laden großer Datenmengen aktiviert sind.

Aber nicht zu schlank

Man sagt, man kann nicht zu reich oder zu dünn sein. Aber wenn es um das Laden von Daten geht, können Sie definitiv zu schlank sein. Es ist zwar clever, Hindernisse für ein schnelleres Laden von Daten zu beseitigen, doch es ist auch wichtig zu bedenken, dass manche Teile Ihrer Konfiguration während des Ladens von Daten unerlässlich (oder zumindest sehr erwünscht) sind und tabu sein sollten:

  • Übergeordnete Datensätze mit untergeordneten Master-Detail-Datensätzen: Sie können untergeordnete Datensätze nur laden, wenn die übergeordneten Datensätze bereits vorhanden sind.
  • Datensatzinhaber: In den meisten Fällen sind Einzelbenutzer Inhaber Ihrer Datensätze, und die Inhaber müssen im System vorhanden sein, bevor Sie die Daten laden können.
  • Rollenhierarchie: Sie denken vielleicht, dass das Laden schneller geht, wenn die Inhaber Ihrer Datensätze keine Mitglieder der Rollenhierarchie sind. Doch in fast allen Fällen wäre die Performance dieselbe, wäre jedoch deutlich höher, wenn Sie Portal-Accounts laden würden. Es bringt also keine Vorteile, diesen Aspekt der Konfiguration zu verschieben.

Laden von Daten mit der Bulk-API oder SOAP-API im Vergleich

Beim Laden großer Datenvolumen macht die Wahl der API einen Unterschied. Die standardmäßige Force.com SOAP-API ist für Echtzeit-Clientanwendungen optimiert, bei denen jeweils nur wenige Datensätze aktualisiert werden. Bei Verwendung der SOAP-API müssen Entwickler und Administratoren komplexe Prozesse zum Hochladen von Daten in mundgerechten Blöcken, zur Überwachung der Ergebnisse und zur Wiederholungsladeversuchen für fehlgeschlagene Datensätze implementieren. Diese Methode ist für kleine Datenmengen akzeptabel, wird aber bei großen Datenmengen unhandlich und zeitaufwendig.

Die Bulk-API dagegen ist so konzipiert, dass das Verarbeiten von Daten aus einigen Tausend bis hin zu Millionen von Datensätzen problemlos möglich ist. Die Bulk-API basiert auf dem REST-Prinzip und wurde speziell entwickelt, um das Laden und Löschen großer Datensets zu vereinfachen und zu optimieren.

Die Verwendung der Bulk-API für große Datenvolumen ermöglicht superschnelle Verarbeitungsgeschwindigkeiten sowie eine reduzierte clientseitige Programmiersprache, einen einfach zu überwachenden Auftragsstatus, automatische Wiederholungsversuche für fehlgeschlagene Datensätze, Unterstützung für parallele Verarbeitung, minimale Roundtrips zu Force.com, minimale API-Aufrufe, eingeschränkte Verbindungsabbrüchen und eine leicht anpassbare Batch-Größe. Einfach ausgedrückt, ist dies der schnellste Weg, Datensätze einzufügen, abzufragen und zu löschen.

Funktionsweise der Bulk-API

Wenn Sie Datensätze mithilfe Bulk-API hochladen, werden diese Datensätze an Force.com übertragen, um einen neuen Auftrag zu erstellen. Während die Daten für den Auftrag eintreffen, werden sie in einem temporären Speichern gespeichert und dann in benutzerdefinierte Batches aufgeteilt (max. 10.000 Datensätze). Selbst wenn Ihre Daten noch an den Server gesendet werden, übergibt die Force.com-Plattform die Batches bereits zur Verarbeitung.

Batches können je nach Bedarf parallel oder seriell verarbeitet werden. Die Bulk-API verlagert die Funktionalität und Arbeit von Ihrer Client-Anwendung auf den Server. Das API protokolliert den Status jedes Auftrags und versucht automatisch, fehlgeschlagene Datensätze erneut zu verarbeiten. Wird ein Auftrag wegen Zeitüberschreitung beendet, stellt die Bulk-API ihn automatisch wieder in die Warteschlange und versucht ihn erneut für Sie auszuführen.

Die einzelnen Batches werden unabhängig voneinander verarbeitet, und sobald ein Batch beendet ist (erfolgreich oder nicht), wird der Auftrag mit den Ergebnissen aktualisiert. Aufträge können von der Admin-Benutzeroberfläche von Salesforce.com aus von jedem Benutzer mit entsprechendem Zugriff überwacht und verwaltet werden.

Höhere Geschwindigkeit durch Aussetzen von Ereignissen

Wenn Sie große Datenvolumen schnell laden müssen, ist es wichtig, dass jede Einfügung so effizient wie möglich erfolgt. Mit der richtigen Vor- und Nachbearbeitung können Sie die Datenvalidierungs- und -anreicherungsvorgänge während des Ladens deaktivieren, ohne die Datenintegrität oder die Geschäftsregeln zu beeinträchtigen.

Die Force.com-Plattform beinhaltet leistungsstarke Tools, die dazu beitragen sicherzustellen, dass die von Ihren Benutzern eingegebenen Daten sauber sind und entsprechende Beziehungen zwischen Datensätzen umfassen. Validierungsregeln stellen sicher, dass die Daten, die Benutzer für neue und bestehende Datensätze eingeben, den von Ihrem Unternehmen festgelegten Standards entsprechen. Mit Workflow-Regeln können Sie Feldaktualisierungen, E-Mail-Benachrichtigungen, ausgehende Nachrichten und Aufgaben im Zusammenhang mit Workflows, Genehmigungen und Meilensteinen automatisieren. Auslöser geben Ihnen die Möglichkeit, Daten zu manipulieren und andere Aktionen beim Einfügen von Datensätzen durchzuführen.

Während diese Tools es Ihnen ermöglichen, die Datenintegrität während des normalen Betriebs aufrechtzuerhalten, können sie Einfügungen auch massiv verlangsamen, wenn Sie sie beim Laden großer Datenmengen aktivieren. Wenn Sie jedoch Validierung, Workflow und Auslöser deaktivieren, wie können Sie dann sicher sein, dass nach dem Laden korrekte Daten und die richtigen Beziehungen zwischen den Objekten vorliegen? Dieses Thema wird von drei Schlüsselphasen abgedeckt: das Analysieren und Vorbereiten von Daten, das Deaktivieren von Ereignissen für den Ladevorgang und die Nachbearbeitung.

Analysieren und Vorbereiten von Daten

Für sichere Ladevorgänge ohne aktive Auslöser, Validierungsregeln und Workflow-Regeln, prüfen Sie die Geschäftsanforderungen, die Sie normalerweise mit diesen Vorgängen erfüllen könnten, und stellen sich dann einige Fragen.

1. welche Ihrer Anforderungen können Sie durch Datenbereinigung vor dem Ladevorgang oder durch die Sequenzierung von Ladevorgängen erfüllen, wenn kritische Abhängigkeiten zwischen Objekten bestehen? Wenn Sie beispielsweise normalerweise eine Validierungsregel verwenden, um sicherzustellen, dass Benutzereingaben innerhalb gültiger Bereiche liegen, können Sie das Datenset vor dem Laden abfragen, um Datensätze zu finden und zu reparieren, die nicht den Regeln entsprechen.

2. Welche Ihrer Anforderungen können Sie durch die Nachbearbeitung von Datensätzen nach dem Ladenvorgang erfüllen? Ein typischer Reihe von Anwendungsfällen bezieht sich hier auf die Datenanreicherung, die das Hinzufügen von Nachschlagebeziehungen zwischen Objekten, von Rollup-Zusammenfassungsfeldern zu übergeordneten Datensätzen und anderen Datenbeziehungen zwischen Datensätzen beinhalten könnte.

Deaktivieren von Ereignissen für den Ladevorgang

Nachdem Sie alle Ihre Datenvalidierungs- und Anreicherungsanforderungen analysiert sowie Aktionen für ihre Erledigung vor oder nach dem Laden der Daten geplant haben, können Sie die Regeln und Auslöser vorübergehend deaktivieren, um den Ladevorgang zu beschleunigen. Dazu bearbeiten Sie einfach jede Regel und setzen sie auf den Status "inaktiv". Sie können Validierungs-, Lead- und Vorgangszuordnungsregeln sowie Gebietszuordnungsregeln auf die gleiche Weise deaktivieren.

Das vorübergehende Deaktivieren von Auslösern ist etwas komplexer und erfordert eine gewisse Vorbereitung. Erstellen Sie zunächst eine benutzerdefinierte Einstellung und ein zugehöriges Kontrollkästchenfeld, um zu steuern, wann ein Auslöser ausgelöst werden soll. Fügen Sie dann eine Anweisung in Ihren Auslösercode ein, wie die in diesem Beispiel hervorgehobene.

Codeausschnitt, der den Code für einen Trigger namens setDefaultValues für das Account-Objekt zeigt. Der im Code markierte Anweisung zeigt, dass der Account-Status auf den Wert 'Stage 1' aktualisiert wird.

Sobald dies geschehen ist, ist das Deaktivieren oder Aktivieren Ihres Auslösers so einfach wie das Bearbeiten des Kontrollkästchenfelds.

Nachbearbeitung

Wenn Sie mit dem Laden Ihrer Daten fertig sind, ist es an der Zeit, die bis zu diesem Zeitpunkt aufgeschobenen Datenanreicherungs- und Konfigurationsaufgaben abzuschließen:

  • Fügen Sie Lookup-Beziehungen zwischen Objekten, Rollup-Zusammenfassungsfelder zu übergeordneten Datensätzen und andere Datenbeziehungen zwischen Datensätzen mithilfe von Batch-Apex oder der Bulk-API hinzu.
  • Erweitern Sie Datensätze in Salesforce mit Fremdschlüsseln oder anderen Daten, um die Integration mit Ihren anderen Systemen mithilfe von Batch-Apex oder der Bulk-API zu erleichtern.
  • Legen Sie die Felder der benutzerdefinierten Einstellungen, die Sie für Auslöser erstellt haben, wieder fest, so dass sie bei der Erstellung und Aktualisierung von Datensätzen entsprechend ausgelöst werden.
  • Schalten Sie Validierungs-, Workflow- und Zuordnungsregeln wieder ein, damit sie die entsprechenden Aktionen auslösen, wenn Benutzer Datensätze eingeben und bearbeiten.

Da haben Sie es: Durch schlankes Laden mithilfe der Bulk-API und das Aussetzen von Ereignissen können Sie sicher sein, dass Ihre Datenladevorgänge effizient und so schnell wie möglich sind und ihre Integrität erhalten bleibt. Nachdem wir uns nun das Laden von Daten angesehen haben, befassen wir uns in der nächsten Einheit mit dem Löschen und Extrahieren von Daten.

Ressourcen