Compartir a través de


Biblioteca cliente de Azure Resource Manager DataFactory para Java: versión 1.0.0-beta.23

Biblioteca cliente de Azure Resource Manager DataFactory para Java.

Este paquete contiene el SDK de Microsoft Azure para el SDK de administración de DataFactory. La API de administración de Azure Data Factory V2 proporciona un conjunto RESTful de servicios web que interactúan con Azure Data Factory servicios V2. Paquete de etiqueta de paquete-2018-06. Para obtener documentación sobre cómo usar este paquete, consulte Bibliotecas de administración de Azure para Java.

Nos encantaría escuchar sus comentarios

Siempre estamos trabajando para mejorar nuestros productos y la forma en que nos comunicamos con nuestros usuarios. Así que nos encantaría aprender lo que está funcionando y cómo podemos hacer mejor.

Si aún no lo ha hecho, tómese unos minutos para completar esta breve encuesta que hemos reunido.

Gracias por adelantado por su colaboración. ¡Realmente agradecemos su tiempo!

Documentación

Hay varias documentación disponibles para ayudarle a empezar

Introducción

Requisitos previos

Adición del paquete al producto

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-datafactory</artifactId>
    <version>1.0.0-beta.23</version>
</dependency>

Las bibliotecas de administración de Azure requieren una TokenCredential implementación para la autenticación y una implementación para el HttpClient cliente HTTP.

Los paquetes HTTP de Azure Identity y Azure Core Netty proporcionan la implementación predeterminada.

Autenticación

De forma predeterminada, la autenticación de tokens de Azure Active Directory depende de la configuración correcta de las siguientes variables de entorno.

  • AZURE_CLIENT_ID para el identificador de cliente de Azure.
  • AZURE_TENANT_ID para el identificador de inquilino de Azure.
  • AZURE_CLIENT_SECRET o AZURE_CLIENT_CERTIFICATE_PATH para el secreto de cliente o el certificado de cliente.

Además, el identificador de suscripción de Azure se puede configurar mediante AZURE_SUBSCRIPTION_ID una variable de entorno.

Con la configuración anterior, azure el cliente se puede autenticar mediante el código siguiente:

AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
TokenCredential credential = new DefaultAzureCredentialBuilder()
    .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
    .build();
DataFactoryManager manager = DataFactoryManager
    .authenticate(credential, profile);

En el código de ejemplo se supone que Azure global. AzureEnvironment.AZURE Cambie la variable si lo contrario.

Consulte Autenticación para obtener más opciones.

Conceptos clave

Consulte Diseño de API para obtener una introducción general sobre el diseño y los conceptos clave en las bibliotecas de administración de Azure.

Ejemplos

// 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();
}

Fragmentos y ejemplos de código

Solución de problemas

Pasos siguientes

Contribuciones

Para más información sobre cómo contribuir a este repositorio, consulte la guía de contribución.

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo tendrá que hacerlo una vez en todos los repositorios mediante nuestra CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.

Impresiones