2

Ich verwende Azure Data Factory V1. Wir möchten die JSON-Daten, die als Dokumente gespeichert sind, aus Azure Cosmos in eine azure SQL-Tabelle kopieren, indem wir eine Kopieraktivität verwenden.Kopieren von JSON-Daten von Azure Cosmos db in Azure sql mit Azure Data Factory

Ich habe herausgefunden, Kopieren der Daten durch Angabe der Spalten in SQL-Tabelle, um die Eigenschaftsnamen von JSON übereinstimmen. Unser Ziel ist es jedoch, die gesamten json-Daten als einzelnes Feld zu kopieren. Wir tun dies, um gegenüber dem Schema innerhalb der json-Daten agnostisch zu sein.

Ich habe versucht, eine einzelne nvarchar (max) -Spalte anzugeben, um die JSON-Daten zu speichern, und die Abfrage für die Kopieraktivität soll "c als" FullData "aus c" auswählen. Aber die Kopieraktivität erzeugt einfach einen NULL.

Ich denke, das liegt daran, "FullData" ist vom Typ json am Dokumentende und es ist String auf dem SQL-Ende. Ich habe auch versucht, das Json-Objekt innerhalb der Kosmos-DB-Abfrage in einen String zu konvertieren. Aber ich konnte keine API dafür finden.

Ich weiß, wir könnten eine benutzerdefinierte Aktivität schreiben, um das zu erreichen, was ich tun möchte, aber ist das mit der ADF-Funktionalität möglich?

Antwort

0

ADF nutzen zu können, die kopieren JSON-Dokument als einzelnes Feld in Azure SQL-Datenbank, müssen Sie sicherstellen, dass das durch die angegebene Cosmos DB-Abfrage festgelegte Ergebnis tatsächlich eine einzelne "Spalte" ist, die das gesamte Objekt als Zeichenfolge enthält.

Ich denke nicht, Cosmos DB hat integrierte Abfrage-Syntax dafür, aber Sie können eine UDF (user defined function) in Cosmos DB zu konvertieren Objekt in String z. mit JSON.stringify(), dann rufen Sie diese UDF in der Select-Abfrage in ADF-Quelle kopieren.

Verwandte Themen