На основании вашего описания, возможно, вы могли бы использовать Azure Data Factory .
Шаг 1: Следуйте статье , чтобы создать операцию копирования.
![enter image description here](https://i.stack.imgur.com/FUyWH.png)
Шаг 2. Настройка исходных данных Cosmos db:
SQL:
SELECT udf.adf(c.fields).CustomerID,
udf.adf(c.fields).ModifiedDate,
udf.adf(c.fields).CustomerStatus FROM c
![enter image description here](https://i.stack.imgur.com/DAnqc.png)
Затем, пожалуйста, следуйте инструкциям из этого документа :
Шаг 3: Сконфигурируйте ваш набор данных Sink:
![enter image description here](https://i.stack.imgur.com/Zrcb2.png)
Шаг 4. Сконфигурируйте секцию «Мойка» в операции копирования следующим образом:
![enter image description here](https://i.stack.imgur.com/XOQ4b.png)
Шаг 5. В вашей базе данных определите тип таблицы с тем же именем, что и sqlWriterTableType. Обратите внимание, что схема типа таблицы должна совпадать со схемой, возвращаемой вашими входными данными.
CREATE TYPE [dbo].[CsvType] AS TABLE(
[ID] [varchar](256) NOT NULL,
[Date] [varchar](256) NOT NULL,
[Status ] [varchar](256) NOT NULL
)
Шаг 6. В вашей базе данных определите хранимую процедуру с тем же именем, что и SqlWriterStoredProcedureName. Он обрабатывает входные данные из указанного вами источника и объединяет их в выходную таблицу. Обратите внимание, что имя параметра хранимой процедуры должно совпадать с именем «tableName», определенным в наборе данных.
Create PROCEDURE convertCsv @ctest [dbo].[CsvType] READONLY
AS
BEGIN
MERGE [dbo].[adf] AS target
USING @ctest AS source
ON (1=1)
WHEN NOT MATCHED THEN
INSERT (id,data,status)
VALUES (source.ID,source.Date,source.Status );
END