你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Java 的 Azure 资源管理器 DataFactory 客户端库 - 版本 1.0.0-beta.23
适用于 Java 的 Azure 资源管理器 DataFactory 客户端库。
此包包含 Microsoft Azure SDK for DataFactory Management SDK。 Azure 数据工厂 V2 管理 API 提供一组与 Azure 数据工厂 V2 服务交互的 RESTful Web 服务。 包标记 package-2018-06。 有关如何使用此包的文档,请参阅 适用于 Java 的 Azure 管理库。
我们非常乐意听取你的反馈
我们一直在努力改进我们的产品和与用户的沟通方式。 因此,我们希望了解哪些功能有效,以及如何做得更好。
如果尚未完成,请花几分钟时间完成我们整理的 这个简短调查 。
提前感谢你的协作。 我们非常感谢你的时间!
文档
提供了各种文档来帮助你入门
入门
先决条件
将包添加到产品
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-datafactory</artifactId>
<version>1.0.0-beta.23</version>
</dependency>
包括建议的包
Azure 管理库需要 TokenCredential
用于身份验证的实现和 HttpClient
HTTP 客户端的实现。
Azure 标识 和 Azure Core Netty HTTP 包提供默认实现。
身份验证
默认情况下,Azure Active Directory 令牌身份验证取决于以下环境变量的正确配置。
AZURE_CLIENT_ID
用于 Azure 客户端 ID。AZURE_TENANT_ID
用于 Azure 租户 ID。AZURE_CLIENT_SECRET
或AZURE_CLIENT_CERTIFICATE_PATH
,用于客户端密码或客户端证书。
此外,可以通过环境变量配置 AZURE_SUBSCRIPTION_ID
Azure 订阅 ID。
使用上述配置, azure
可以使用以下代码对客户端进行身份验证:
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
.build();
DataFactoryManager manager = DataFactoryManager
.authenticate(credential, profile);
示例代码假定全局 Azure。 否则,请更改 AzureEnvironment.AZURE
变量。
有关更多选项,请参阅 身份验证 。
关键概念
有关 Azure 管理库的设计和关键概念的一般介绍,请参阅 API 设计。
示例
// storage account
StorageAccount storageAccount = storageManager.storageAccounts().define(STORAGE_ACCOUNT)
.withRegion(REGION)
.withExistingResourceGroup(resourceGroup)
.create();
final String storageAccountKey = storageAccount.getKeys().iterator().next().value();
final String connectionString = getStorageConnectionString(STORAGE_ACCOUNT, storageAccountKey, storageManager.environment());
// container
final String containerName = "adf";
storageManager.blobContainers().defineContainer(containerName)
.withExistingStorageAccount(resourceGroup, STORAGE_ACCOUNT)
.withPublicAccess(PublicAccess.NONE)
.create();
// blob as input
BlobClient blobClient = new BlobClientBuilder()
.connectionString(connectionString)
.containerName(containerName)
.blobName("input/data.txt")
.buildClient();
blobClient.upload(BinaryData.fromString("data"));
// data factory
Factory dataFactory = manager.factories().define(DATA_FACTORY)
.withRegion(REGION)
.withExistingResourceGroup(resourceGroup)
.create();
// linked service
final Map<String, String> connectionStringProperty = new HashMap<>();
connectionStringProperty.put("type", "SecureString");
connectionStringProperty.put("value", connectionString);
final String linkedServiceName = "LinkedService";
manager.linkedServices().define(linkedServiceName)
.withExistingFactory(resourceGroup, DATA_FACTORY)
.withProperties(new AzureStorageLinkedService()
.withConnectionString(connectionStringProperty))
.create();
// input dataset
final String inputDatasetName = "InputDataset";
manager.datasets().define(inputDatasetName)
.withExistingFactory(resourceGroup, DATA_FACTORY)
.withProperties(new AzureBlobDataset()
.withLinkedServiceName(new LinkedServiceReference().withReferenceName(linkedServiceName))
.withFolderPath(containerName)
.withFileName("input/data.txt")
.withFormat(new TextFormat()))
.create();
// output dataset
final String outputDatasetName = "OutputDataset";
manager.datasets().define(outputDatasetName)
.withExistingFactory(resourceGroup, DATA_FACTORY)
.withProperties(new AzureBlobDataset()
.withLinkedServiceName(new LinkedServiceReference().withReferenceName(linkedServiceName))
.withFolderPath(containerName)
.withFileName("output/data.txt")
.withFormat(new TextFormat()))
.create();
// pipeline
PipelineResource pipeline = manager.pipelines().define("CopyBlobPipeline")
.withExistingFactory(resourceGroup, DATA_FACTORY)
.withActivities(Collections.singletonList(new CopyActivity()
.withName("CopyBlob")
.withSource(new BlobSource())
.withSink(new BlobSink())
.withInputs(Collections.singletonList(new DatasetReference().withReferenceName(inputDatasetName)))
.withOutputs(Collections.singletonList(new DatasetReference().withReferenceName(outputDatasetName)))))
.create();
// run pipeline
CreateRunResponse createRun = pipeline.createRun();
// wait for completion
PipelineRun pipelineRun = manager.pipelineRuns().get(resourceGroup, DATA_FACTORY, createRun.runId());
String runStatus = pipelineRun.status();
while ("InProgress".equals(runStatus)) {
sleepIfRunningAgainstService(10 * 1000); // wait 10 seconds
pipelineRun = manager.pipelineRuns().get(resourceGroup, DATA_FACTORY, createRun.runId());
runStatus = pipelineRun.status();
}
故障排除
后续步骤
贡献
有关参与此存储库的详细信息,请参阅 参与指南。
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com 。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 在所有存储库中执行此操作一次。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。