Cómo implementar una aplicación en Clústeres de macrodatos de SQL Server

Se aplica a: SQL Server 2019 (15.x)

Importante

El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.

Las aplicaciones implementadas en Clústeres de macrodatos de SQL Server no solo se benefician de muchas ventajas, como la capacidad de cálculo del clúster, sino que también acceden a datos masivos que están disponibles en el clúster. Mejora drásticamente el rendimiento, ya que la aplicación se encuentra en el mismo clúster en el que residen los datos.

Las aplicaciones se implementan y administran mediante CLI de datos de Azure (azdata).

En este artículo se proporcionan ejemplos de cómo implementar aplicaciones desde la línea de comandos en un Clúster de macrodatos de SQL Server. Para obtener información sobre cómo usar esto en Visual Studio Code, consulte Extensión de Visual Studio Code.

Prerrequisitos

Capacidades

En SQL Server 2019, puede crear, eliminar, describir, inicializar, enumerar, ejecutar y actualizar la aplicación. En la tabla siguiente se describen los comandos de implementación de aplicaciones que puede usar con azdata.

Get-Help Descripción
azdata login Iniciar sesión en un clúster de macrodatos SQL Server
azdata app create Crea una aplicación.
azdata app delete Elimina una aplicación.
azdata app describe Describe una aplicación.
azdata app init Inicio rápido de un nuevo esqueleto de la aplicación.
azdata app list Muestra una lista de aplicaciones.
azdata app run Ejecuta una aplicación.
azdata app update Actualiza una aplicación.

Puede obtener ayuda con el parámetro --help, como en el ejemplo siguiente:

azdata app create --help

En las siguientes secciones se describen estos comandos con más detalle.

Iniciar sesión

Antes de implementar aplicaciones o interactuar con ellas, primero inicie sesión en el clúster de macrodatos de SQL Server con el comando azdata login. Especifique la dirección IP externa del servicio controller-svc-external (por ejemplo: https://ip-address:30080) junto con el nombre de usuario y la contraseña para el clúster.

azdata login --controller-endpoint https://<ip-address-of-controller-svc-external>:30080 --controller-username <user-name>

Azure Kubernetes Service (AKS)

Si usa AKS, debe ejecutar el siguiente comando en una ventana de bash o CMD para obtener la dirección IP del servicio controller-svc-external:

kubectl get svc controller-svc-external -n <name of your big data cluster>

Clústeres de Kubernetes creados con kubeadm

Ejecute el comando siguiente para obtener la dirección IP en la que iniciar sesión en el clúster.

kubectl get node --selector='node-role.kubernetes.io/master'

Crear un esqueleto de aplicación

El comando azdata app init proporciona un scaffolding con los artefactos pertinentes necesarios para implementar una aplicación. En el ejemplo siguiente se crea add-app. Puede hacerlo con el siguiente comando.

azdata app init --name add-app --version v1 --template python

Se creará una carpeta denominada Hello. Puede usar el comando cd en el directorio e inspeccionar los archivos generados en la carpeta. spec.yaml define la aplicación, como el nombre, la versión y el código fuente. Puede editar spec para cambiar el nombre, la versión, la entrada y las salidas.

Este es un ejemplo de salida del comando init que verá en la carpeta:

add-app.py
run-spec.yaml
spec.yaml

Creación de una aplicación

Para crear una aplicación, use CLI de datos de Azure (azdata) con el comando app create. Estos archivos residen localmente en el equipo desde el que va a crear la aplicación.

Use la sintaxis siguiente para crear una nueva aplicación en el clúster de macrodatos:

azdata app create --spec <directory containing spec file>

El comando siguiente muestra un ejemplo de cómo podría ser este comando:

azdata app create --spec ./addpy

Se supone que la aplicación está almacenada en la carpeta addpy. Esta carpeta también debe contener un archivo de especificación para la aplicación, denominado spec.yaml. Para más información, consulte la página de implementación de aplicaciones en el archivo spec.yaml.

Para implementar esta aplicación de ejemplo, cree los archivos siguientes en un directorio denominado addpy:

  • add.py. Copie el siguiente código de Python en este archivo:
    #add.py
    def add(x, y):
      result = x+y
      return result
    result=add(x,y)
    
  • spec.yaml. Copie el siguiente código en este archivo:
    #spec.yaml
    name: add-app #name of your python script
    version: v1  #version of the app
    runtime: Python #the language this app uses (R or Python)
    src: ./add.py #full path to the location of the app
    entrypoint: add #the function that will be called upon execution
    replicas: 1  #number of replicas needed
    poolsize: 1  #the pool size that you need your app to scale
    inputs:  #input parameters that the app expects and the type
       x: int
       y: int
    output: #output parameter the app expects and the type
       result: int
    

A continuación, ejecute el siguiente comando:

azdata app create --spec ./addpy

Para comprobar si la aplicación se ha implementado, use el comando list:

azdata app list

Si la implementación no se ha completado, state debería mostrar WaitingforCreate, como en el ejemplo siguiente:

[
  {
    "name": "add-app",
    "state": "WaitingforCreate",
    "version": "v1"
  }
]

Una vez que la implementación se realiza correctamente, state debería cambiar al estado Ready:

[
  {
    "name": "add-app",
    "state": "Ready",
    "version": "v1"
  }
]

Enumerar una aplicación

El comando app list enumera las aplicaciones que se crearon correctamente.

El comando siguiente muestra todas las aplicaciones disponibles en el clúster de macrodatos:

azdata app list

Si especifica un nombre y una versión, se muestra la aplicación específica y su estado: Creating (en creación) o Ready (lista).

azdata app list --name <app_name> --version <app_version>

El ejemplo siguiente demuestra este comando:

azdata app list --name add-app --version v1

Debería ver una salida similar al ejemplo siguiente:

[
  {
    "name": "add-app",
    "state": "Ready",
    "version": "v1"
  }
]

Eliminar una aplicación

Para eliminar una aplicación del clúster de macrodatos, use la sintaxis siguiente:

azdata app delete --name add-app --version v1

Averigüe cómo integrar aplicaciones implementadas en Clústeres de macrodatos de SQL Server en aplicaciones propias en Ejecución de aplicaciones en clúster de macrodatos y Consumo de aplicaciones en clústeres de macrodatos para más información. También puede ver otros ejemplos en Ejemplos de implementación de aplicaciones.

Para obtener más información sobre Clústeres de macrodatos de SQL Server, vea Presentación de Clústeres de macrodatos de SQL Server 2019.