2017-10-16 1 views
-1

Ich möchte ETL-Operation für die Datentabellen der MySQL-Datenbank durchführen und die Daten im Azure Data Warehouse speichern. Ich habe aktualisiertes Datum Spalte, um einen geänderten Datensatz über den Zeitraum zu identifizieren. Wie kann ich herausfinden, welcher Datensatz geändert wurde? Unterstützt die MySQL-Datenbank CDC?MYSQL Change Data Capture (CDC) - Azure-Dienste (Azure-Datenfabrik)

Es ist möglich, die MYSQL Binlogs oder Binärlogs mit Azure-Diensten (Azure Data Factory) zu lesen?

Antwort

0

Wenn Sie eine einzelne Anweisungsabfrage zusammenstellen können, die das zurückgibt, was Sie wollen, indem Sie Funktionen und Joins verwenden, die Ihnen zur Verfügung stehen, können Sie diese in den sqlReaderQuery-Teil des ADFs einfügen.

Andernfalls könnten Sie in der Lage sein, eine gespeicherte Prozedur Aktivität zu verwenden (sorry nicht so vertraut mit mySQL, wie ich ADF bin)

0

Haben Sie eine Spalte, die ganzzahlige steigt? Wenn dies der Fall ist, können Sie weiterhin Suchaktivität + Kopieraktivität + Aktivität der gespeicherten Prozedur verwenden, um eine inkrementelle Auslastung zu erhalten. Weitere Details sind wie folgt: https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-powershell

ADF haben keine integrierte Unterstützung für CDC noch nicht. Sie können dies über benutzerdefinierte Aktivitäten in ADF mit Ihrem Code tun.

0

In MySQL haben Sie die Möglichkeit, eine Zeitstempelspalte hinzuzufügen, die standardmäßig auf einem Update auf Rowlevel aktualisiert wird. Ein CDC ist nicht verfügbar, aber wenn Sie den Unterschied sehen können, können Sie den MAX (aktualisiert) von MySQL gegen (> =) Ihren eigenen MAX (ETLDate) vergleichen, um alle modifizierten Datensätze zu erhalten.

Verwandte Themen