Transformación de datos en Azure Virtual Network mediante la actividad de Hive en Azure Data Factory con Azure Portal

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este tutorial, se usa Azure Portal para crear una canalización de Data Factory que transforma los datos mediante la actividad de Hive en un clúster de HDInsight que se encuentra en una instancia de Azure Virtual Network (VNet). En este tutorial, realizará los siguientes pasos:

  • Creación de una factoría de datos.
  • Creación de una instancia de Integration Runtime autohospedada
  • Creación de servicios vinculados con Azure Storage y Azure HDInsight
  • Creación de una canalización con la actividad de Hive
  • Desencadenamiento de una ejecución de la canalización
  • Supervisión de la ejecución de la canalización
  • Comprobación del resultado

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

Nota:

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

  • Cuenta de Azure Storage. Cree un script de Hive y cárguelo en Azure Storage. La salida desde el script de Hive se almacena en esta cuenta de almacenamiento. En este ejemplo, el clúster de HDInsight usa esta cuenta de Azure Storage como el almacenamiento principal.

  • Azure Virtual Network. Si no tiene ninguna instancia de Azure Virtual Network, cree una siguiendo estas instrucciones. En este ejemplo, HDInsight se encuentra en una instancia de Azure Virtual Network. A continuación, puede ver una configuración de ejemplo de Azure Virtual Network.

    Create virtual network

  • Clúster de HDInsight. Consulte el artículo siguiente para crear un clúster de HDInsight y unirlo a la red virtual que creó en el paso anterior: Extender Azure HDInsight mediante una instancia de Azure Virtual Network. A continuación, puede ver una configuración de ejemplo de HDInsight en una red virtual.

    HDInsight in a virtual network

  • Azure PowerShell. Siga las instrucciones de Instalación y configuración de Azure PowerShell.

  • Una máquina virtual. Cree una máquina virtual de Azure y únala a la misma red virtual que contiene el clúster de HDInsight. Para obtener más información, consulte Creación de máquinas virtuales.

Carga del script de Hive en la cuenta de Blob Storage

  1. Cree un archivo SQL de Hive denominado hivescript.hql con el siguiente contenido:

    DROP TABLE IF EXISTS HiveSampleOut; 
    CREATE EXTERNAL TABLE HiveSampleOut (clientid string, market string, devicemodel string, state string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' 
    STORED AS TEXTFILE LOCATION '${hiveconf:Output}';
    
    INSERT OVERWRITE TABLE HiveSampleOut
    Select 
        clientid,
        market,
        devicemodel,
        state
    FROM hivesampletable
    
  2. En Azure Blob Storage, cree un contenedor denominado adftutorial si no existe.

  3. Cree una carpeta llamada hivescripts.

  4. Cargue el archivo hivescript.hql en la subcarpeta hivescripts.

Crear una factoría de datos

  1. Si aún no ha creado la factoría de datos, siga los pasos descritos en Inicio rápido: Creación de una factoría de datos mediante Azure Portal y Azure Data Factory Studio para crear una. Después de crearla, vaya a la factoría de datos en Azure Portal.

    Screenshot of home page for the Azure Data Factory, with the Open Azure Data Factory Studio tile.

  2. Seleccione Open (Abrir) en el icono Open Azure Data Factory Studio (Abrir Azure Data Factory Studio) para iniciar la aplicación de integración de datos en una pestaña independiente.

Creación de una instancia de Integration Runtime autohospedada

Como el clúster de Hadoop está dentro de una red virtual, debe instalar un entorno de ejecución de integración (IR) autohospedado en la misma red virtual. En esta sección, va a crear una nueva máquina virtual, se unirá a la misma red virtual e instalará un entorno de ejecución de integración autohospedado en ella. El entorno de ejecución de integración autohospedado permite al servicio Data Factory enviar solicitudes de proceso a un servicio de proceso como HDInsight en una red virtual. También permite mover datos hacia los almacenes de datos de una red virtual y, desde estos, a Azure. Puede usar un entorno de ejecución de integración autohospedado cuando el almacén de datos o de procesos está también en un entorno local.

  1. En la interfaz de usuario de Azure Data Factory, haga clic en Connections (Conexiones) en la parte inferior de la ventana, vaya a la pestaña Integration Runtimes y haga clic en el botón + New (+Nuevo) en la barra de herramientas.

    New integration runtime menu

  2. En la ventana Integration Runtime Setup (Configuración de Integration Runtime), seleccione la opción Perform data movement and dispatch activities to external computes (Realizar movimientos de datos y enviar actividades a procesos externos), y haga clic en Next (Siguiente).

    Select perform data movement and dispatch activities option

  3. Seleccione Private Network (Red privada) y haga clic en Next (Siguiente).

    Select private network

  4. Escriba MySelfHostedIR como nombre y haga clic en Next (Siguiente).

    Specify integration runtime name

  5. Copie la clave de autenticación del entorno de ejecución de integración haciendo clic en el botón de copia y guárdela. Mantenga la ventana abierta. Use esta clave para registrar el entorno de ejecución de integración instalado en una máquina virtual.

    Copy authentication key

Instalación de un entorno de ejecución de integración en una máquina virtual

  1. En la máquina virtual de Azure, descargue la instancia de Integration Runtime autohospedada. Use la clave de autenticación que obtuvo en el paso anterior para registrar manualmente el entorno de ejecución de integración autohospedado.

    Register integration runtime

  2. Verá el siguiente mensaje cuando se haya registrado correctamente el entorno de ejecución de integración autohospedado.

    Registered successfully

  3. Haga clic en Iniciar Configuration Manager. Verá la siguiente página cuando el nodo esté conectado al servicio en la nube:

    Node is connected

Entorno de ejecución de integración autohospedado en la interfaz de usuario de Azure Data Factory

  1. En la interfaz de usuario de Azure Data Factory, debería ver el nombre de la máquina virtual autohospedada y su estado.

    Existing self-hosted nodes

  2. Haga clic en Finish (Finalizar) para cerrar la ventana Integration Runtime Setup (Configuración de Integration Runtime). Puede ver que el entorno de ejecución de integración autohospedado aparece en la lista de entornos.

    Self-hosted IR in the list

Crear servicios vinculados

En esta sección, deberá crear e implementar dos servicios vinculados:

  • Un servicio vinculado a Azure Storage que vincule una cuenta de Azure Storage con la factoría de datos. Este es el almacenamiento principal que usa el clúster de HDInsight. En este caso, puede usar esta cuenta de Azure Storage para almacenar el script de Hive y la salida del script.
  • Un servicio vinculado a HDInsight. Azure Data Factory envía el script de Hive a este clúster de HDInsight para su ejecución.

Creación de un servicio vinculado de Azure Storage

  1. Vaya a la pestaña Servicios vinculados y haga clic en Nuevo.

    New linked service button

  2. En la ventana New Linked Service (Nuevo servicio vinculado), seleccione Azure Blob Storage y haga clic en Continue (Continuar).

    Select Azure Blob Storage

  3. En la ventana New Linked Service (Nuevo servicio vinculado), realice los pasos siguientes:

    1. Escriba AzureStorageLinkedService en Name (Nombre).

    2. Seleccione MySelfHostedIR en la opción Connect via integration runtime (Conectar mediante IR).

    3. Seleccione la cuenta de Azure Storage de Storage account name (Nombre de la cuenta de Storage).

    4. Haga clic en Prueba de conexión para probar la conexión con la cuenta de almacenamiento.

    5. Haga clic en Save(Guardar).

      Specify Azure Blob Storage account

Creación del servicio vinculado de HDInsight

  1. Haga clic en New (Nuevo) una vez más para crear otro servicio vinculado.

    New linked service button

  2. Vaya a la pestaña Compute, seleccione Azure HDInsight y haga clic en Continuar.

    Select Azure HDInsight

  3. En la ventana New Linked Service (Nuevo servicio vinculado), realice los pasos siguientes:

    1. Escriba AzureHDInsightLinkedService como nombre.

    2. Seleccione Bring your own HDInsight (Traer su propio HDInsight).

    3. Seleccione el clúster de HDInsight como clúster de HDI.

    4. Escriba el nombre de usuario del clúster de HDInsight.

    5. Escriba la contraseña del usuario.

      Azure HDInsight settings

En este artículo, se supone que tiene acceso al clúster a través de Internet. Por ejemplo, que se puede conectar al clúster en https://clustername.azurehdinsight.net. Esta dirección usa la puerta de enlace pública, que no está disponible si ha usado grupos de seguridad de red (NSG) o rutas definidas por el usuario (UDR) para restringir el acceso desde Internet. Para que Data Factory pueda enviar trabajos al clúster de HDInsight en Azure Virtual Network, debe configurar su instancia de Azure Virtual Network de modo que la URL pueda resolverse en la dirección IP privada de la puerta de enlace que usa HDInsight.

  1. Desde Azure Portal, abra la instancia de Virtual Network en que se encuentra HDInsight. Abra la interfaz de red con nombres que empiecen por nic-gateway-0. Anote su dirección IP privada. Por ejemplo: 10.6.0.15.

  2. Si su instancia de Azure Virtual Network tiene un servidor DNS, actualice el registro DNS para que la dirección URL del clúster de HDInsight https://<clustername>.azurehdinsight.net puede resolverse en 10.6.0.15. Si no tiene ningún servidor DNS en su instancia de Azure Virtual Network, puede evitar este problema de forma temporal. Para ello, edite el archivo de hosts (C:\Windows\System32\drivers\etc) de todas las máquinas virtuales que se registran como nodos del entorno de ejecución de integración autohospedado mediante la adición de una entrada similar a la siguiente:

    10.6.0.15 myHDIClusterName.azurehdinsight.net

Crear una canalización

En este paso, se crea una canalización con una actividad de Hive. La actividad ejecuta el script de Hive para devolver datos de una tabla de ejemplo y guardarlos en una ruta de acceso que haya definido.

Tenga en cuenta los siguientes puntos:

  • scriptPath apunta a la ruta de acceso al script de Hive de la cuenta de Azure Storage que usó para MyStorageLinkedService. La ruta de acceso distingue mayúsculas de minúsculas.
  • Output es un argumento que se usa en el script de Hive. Use el formato de wasbs://<Container>@<StorageAccount>.blob.core.windows.net/outputfolder/ para que apunte a una carpeta existente de su instancia de Azure Storage. La ruta de acceso distingue mayúsculas de minúsculas.
  1. En la interfaz de usuario de Data Factory, haga clic en + (signo más) en el panel izquierdo y haga clic en Pipeline (Canalización).

    New pipeline menu

  2. En el cuadro de herramientas Activities (Actividades), expanda HDInsight, arrastre la actividad Hive y colóquela en la superficie del diseñador de canalizaciones.

    drag-drop Hive activity

  3. En la ventana de propiedades, vaya a la pestaña HDI Cluster (Clúster de HDI) y seleccione AzureHDInsightLinkedService como servicio vinculado a HDInsight.

    Select HDInsight linked service

  4. Cambie a la pestaña Scripts y realice los pasos siguientes:

    1. Seleccione AzureStorageLinkedService como servicio vinculado de script.

    2. En File Path (Ruta de archivo), haga clic en Browse Storage (Examinar almacenamiento).

      Browse storage

    3. En la ventana Choose a file or folder (Elegir un archivo o carpeta), vaya a la carpeta hivescripts del contenedor adftutorial, seleccione hivescript.hql y haga clic en Finish (Finalizar).

      Choose a file or folder

    4. Confirme que ve adftutorial/hivescripts/hivescript.hql en File Path (Ruta de archivo).

      Script settings

    5. En la pestaña Script, expanda la sección Advanced (Avanzadas).

    6. Haga clic en Auto-fill from script (Rellenado automático a partir de script) en Parameters (Parámetros).

    7. Escriba el valor del parámetro Output en el siguiente formato: wasbs://<Blob Container>@<StorageAccount>.blob.core.windows.net/outputfolder/. Por ejemplo: wasbs://adftutorial@mystorageaccount.blob.core.windows.net/outputfolder/.

      Script arguments

  5. Para publicar artefactos en Data Factory, haga clic en Publish (Publicar).

    Screenshot shows the option to publish to a Data Factory.

Desencadenamiento de una ejecución de la canalización

  1. En primer lugar, valide la canalización haciendo clic en el botón Validate (Comprobar) en la barra de herramientas. Cierre la ventana Pipeline Validation Output (Salida de comprobación de canalización) haciendo clic en flecha derecha (>>).

    Validate pipeline

  2. Para desencadenar una ejecución de la canalización, haga clic en Trigger (Desencadenar) en la barra de herramientas y en Trigger Now (Desencadenar ahora).

    Trigger now

Supervisión de la ejecución de la canalización

  1. Cambie a la pestaña Monitor (Supervisar) de la izquierda. Puede ver una ejecución de canalización en la lista Pipeline Runs (Ejecuciones de canalización).

    Monitor pipeline runs

  2. Haga clic en Refresh (Actualizar) para actualizar la lista.

  3. Para ver las ejecuciones de actividad asociadas a la de la canalización, primero haga clic en el vínculo View Activity Runs (Ver ejecuciones de actividad) de la columna Action (Acción). Otros vínculos de acción se usan para detener y volver a ejecutar la canalización.

    View activity runs

  4. Verá solo una actividad de ejecución ya que solo hay una actividad en la canalización que sea del tipo HDInsightHive. Para volver a la vista anterior, haga clic en el vínculo Pipelines (Canalizaciones) de la parte superior.

    Activity runs

  5. Confirme que ve un archivo de salida en la carpeta outputfolder del contenedor adftutorial.

    Output file

En este tutorial, realizó los pasos siguientes:

  • Creación de una factoría de datos.
  • Creación de una instancia de Integration Runtime autohospedada
  • Creación de servicios vinculados con Azure Storage y Azure HDInsight
  • Creación de una canalización con la actividad de Hive
  • Desencadenamiento de una ejecución de la canalización
  • Supervisión de la ejecución de la canalización
  • Comprobación del resultado

Pase al tutorial siguiente para obtener información acerca de la transformación de datos mediante el uso de un clúster de Spark en Azure: