При реализации мы используем приведенную ниже структуру и зависимости
Версия SDK: com.azure.resourcemanager:azure-resourcemanager-datafactory:1.0.0-beta.30
Мы хотим, чтобы конвейер потока данных был виден в пользовательском интерфейсе с соответствующей активностью потока данных через указанный выше Java SDK.
Поскольку DataFlowActivity отсутствует в SDK, какой будет альтернативный подход к отображению конвейеров, созданных с помощью кода Java, в пользовательском интерфейсе.
Примечание: невозможно создайте «CustomActivity» как «withName», и несколько методов будут недоступны.
Фрагмент кода:
Код: Выделить всё
LinkedServiceReference linkedServiceReference =new LinkedServiceReference()
.withReferenceName(linkedServiceName);
// Create Source Dataset
AzureBlobDataset sourceDataset = new AzureBlobDataset()
.withLinkedServiceName(linkedServiceReference)
.withFolderPath(bronzeContainerName)
.withFileName(p0FileName);
// Create Destination Dataset
AzureBlobDataset destinationDataset = new AzureBlobDataset()
.withLinkedServiceName(linkedServiceReference)
.withFolderPath(goldContainerName)
.withFileName(p0JsonFileName);
// Create the datasets
DatasetResource p0SourceDataSet = dataFactoryManager.datasets().define("p0SourceDataSet")
.withExistingFactory(resourceGroupName, dataFactoryName)
.withProperties(sourceDataset)
.create();
DatasetResource p0DestinationDataSet = dataFactoryManager.datasets().define("p0DestinationDataSet")
.withExistingFactory(resourceGroupName, dataFactoryName)
.withProperties(destinationDataset)
.create();
// Sink
DatasetReference datasetReference = new DatasetReference()
.withReferenceName("p0DestinationDataSet");
DataFlowSink sink = new DataFlowSink()
.withName("P0Sink")
.withDataset(datasetReference);
// Create Data Flow
MappingDataFlow mappingDataFlow =new MappingDataFlow()
.withDescription("Vianova Data Flow")
.withSinks(Collections.singletonList(sink));
DataFlowSource source = new DataFlowSource()
.withName("source")
.withDataset(new DatasetReference().withReferenceName("p0SourceDataSet"));
mappingDataFlow.withSources(Collections.singletonList(source));
DataFlowResource dataFlowResource = dataFactoryManager.dataFlows().define("vianovaDataFlow")
.withExistingFactory(resourceGroupName, dataFactoryName)
.withProperties(mappingDataFlow)
.create();
// Create DataFlowReference
DataFlowReference dataFlowReference = new DataFlowReference()
.withType(DataFlowReferenceType.fromString("VianovaDataFlowReference")) // Setting the type explicitly to "MappingDataFlow"
.withReferenceName(dataFlowResource.name()); // Reference the data flow you just created
ExecuteDataFlowActivity executeDataFlowActivity =new ExecuteDataFlowActivity()
.withName("Vianova Data Activity")
.withDataFlow(dataFlowReference); // Set the data flow reference
// Create Pipeline
PipelineResource pipelineResource = dataFactoryManager.pipelines().define("VianovaSamplePipeline")
.withExistingFactory(resourceGroupName, dataFactoryName)
.withDescription("Vianova P file Transformation Pipeline")
.withActivities(Collections.singletonList(executeDataFlowActivity))
.create();
CreateRunResponse run = pipelineResource.createRun();
"error": {
"code": "BadRequest",
"message": " Объект конвейера недействителен",
"target": "Pipeline/VianovaSamplePipeline",
"details": null
}
}": объект конвейера недействителен] с основной причиной< /p>
com.azure.core.management.Exception.ManagementException: код состояния 400, "{
"ошибка": {
"code": "BadRequest","message": "Недопустимый объект конвейера",
"target": "Pipeline/VianovaSamplePipeline",
"details": null
}
}"
Ожидается создание конвейера с сопоставлением потоков данных
Подробнее здесь: https://stackoverflow.com/questions/791 ... g-java-sdk