Comment déployer une application sur un cluster de données volumineux de SQL Server (version préliminaire)How to deploy an app on SQL Server big data cluster (preview)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2019)nonAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2019)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Cet article décrit comment déployer et gérer le script R et Python en tant qu’application à l’intérieur d’un cluster de données volumineuses de SQL Server 2019 (version préliminaire).This article describes how to deploy and manage R and Python script as an application inside a SQL Server 2019 big data cluster (preview).

What ' s nouvelles et amélioréesWhat's new and improved

  • Un utilitaire de ligne de commande unique pour gérer le cluster et application.A single command-line utility to manage cluster and app.
  • Déploiement d’applications simplifié tout en fournissant un contrôle granulaire par le biais des fichiers spec.Simplified app deployment while providing granular control through spec files.
  • Prend en charge l’hébergement des types d’applications supplémentaires - SSIS et MLeap (Nouveautés de CTP 2.3)Support hosting additional application types - SSIS and MLeap (new in CTP 2.3)
  • Extension de VS Code pour gérer le déploiement d’applicationVS Code Extension to manage application deployment

Les applications sont déployées et gérées à l’aide mssqlctl utilitaire de ligne de commande.Applications are deployed and managed using mssqlctl command-line utility. Cet article fournit des exemples montrant comment déployer des applications à partir de la ligne de commande.This article provides examples of how to deploy apps from the command line. Découvrez comment utiliser cela dans Visual Studio Code font référence à Extension VS Code.To learn how to use this in Visual Studio Code refer to VS Code Extension.

Les types d’applications suivants sont pris en charge :The following types of apps are supported:

  • Applications R et Python (fonctions, modèles et applications)R and Python apps (functions, models and apps)
  • Fourniture de MLeapMLeap Serving
  • SQL Server Integration Services (SSIS)SQL Server Integration Services (SSIS)

PrérequisPrerequisites

FonctionsCapabilities

Dans SQL Server 2019 (version préliminaire) CTP 3.0 vous pouvez créer, supprimer, décrivent, initialiser, liste de s’exécuter et mettre à jour votre application.In SQL Server 2019 (preview) CTP 3.0 you can create, delete, describe, initialize, list run and update your application. Le tableau suivant décrit les commandes de déploiement d’application que vous pouvez utiliser avec mssqlctl.The following table describes the application deployment commands that you can use with mssqlctl.

CommandCommand DescriptionDescription
mssqlctl login Se connecter à un cluster de données volumineux de SQL ServerSign into a SQL Server big data cluster
mssqlctl app create Créer l’application.Create application.
mssqlctl app delete Supprimer l’application.Delete application.
mssqlctl app describe Décrire l’application.Describe application.
mssqlctl app init Kickstart nouveau squelette d’application.Kickstart new application skeleton.
mssqlctl app list Liste des applications.List application(s).
mssqlctl app run Exécuter l’application.Run application.
mssqlctl app update Mettre à jour d’application.Update application.

Vous pouvez obtenir de l’aide avec le --help paramètre comme dans l’exemple suivant :You can get help with the --help parameter as in the following example:

mssqlctl app create --help

Les sections suivantes décrivent ces commandes plus en détail.The following sections describe these commands in more detail.

ConnexionSign in

Avant de déployer ou d’interagir avec les applications, tout d’abord vous connecter à votre serveur SQL Server en cluster big data avec le mssqlctl login commande.Before you deploy or interact with applications, first sign in to your SQL Server big data cluster with the mssqlctl login command. Spécifiez l’adresse IP externe de la controller-svc-external service (par exemple : https://ip-address:30080), ainsi que le nom d’utilisateur et le mot de passe pour le cluster.Specify the external IP address of the controller-svc-external service (for example: https://ip-address:30080) along with the user name and password to the cluster.

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

AKSAKS

Si vous utilisez AKS, vous devez exécuter la commande suivante pour obtenir l’adresse IP de la mgmtproxy-svc-external service en exécutant cette commande dans une fenêtre bash ou cmd :If you are using AKS, you need to run the following command to get the IP address of the mgmtproxy-svc-external service by running this command in a bash or cmd window:

kubectl get svc mgmtproxy-svc-external -n <name of your cluster>

Kubeadm ou MinikubeKubeadm or Minikube

Si vous utilisez Kubeadm ou Minikube, exécutez la commande suivante pour obtenir l’adresse IP pour la connexion au clusterIf you are using Kubeadm or Minikube run the following command to get the IP address to login in to the cluster

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

Créer une applicationCreate an app

Pour créer une application, vous utilisez mssqlctl avec la app create commande.To create an application, you use mssqlctl with the app create command. Ces fichiers résident localement sur l’ordinateur que vous créez l’application à partir de.These files reside locally on the machine that you are creating the app from.

Pour créer une nouvelle application dans le cluster de données volumineux, utilisez la syntaxe suivante :Use the following syntax to create a new app in big data cluster:

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

La commande suivante montre un exemple de ce que cette commande peut ressembler :The following command shows an example of what this command might look like:

mssqlctl app create --spec ./addpy

Cela suppose que vous disposez de votre application stockée dans le addpy dossier.This assumes that you have your application stored in the addpy folder. Ce dossier doit également contenir un fichier de spécification de l’application, appelé appelée spec.yaml.This folder should also contain a specification file for the application, called called spec.yaml. Consultez la page de déploiement d’applications pour plus d’informations sur la spec.yaml fichier.Please see the Application Deployment page for more information on the spec.yaml file.

Pour déployer cet exemple d’application, créer les fichiers suivants dans un répertoire appelé addpy:To deploy this app sample app, create the following files in a directory called addpy:

  • add.py .add.py. Copiez le code Python suivant dans ce fichier :Copy the following Python code into this file:
    #add.py
    def add(x,y):
          result = x+y
          return result
      result=add(x,y)
    
  • spec.yaml .spec.yaml. Copiez le code suivant dans ce fichier :Copy the following code into this file:
    #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
    

Ensuite, exécutez la commande suivante :Then, run the command below:

mssqlctl app create --spec ./addpy

Vous pouvez vérifier si l’application est déployée à l’aide de la commande list :You can check if the app is deployed using the list command:

mssqlctl app list

Si le déploiement n’est pas terminé, vous devez voir le state afficher WaitingforCreate comme dans l’exemple suivant :If the deployment is not complete you should see the state show WaitingforCreate as the following example:

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

Une fois le déploiement réussi, vous devez voir le state modifier à Ready état :After the deployment is successful, you should see the state change to Ready status:

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

Une application de listeList an app

Vous pouvez répertorier toutes les applications qui ont été créées avec le app list commande.You can list any apps that were successfully created with the app list command.

La commande suivante répertorie toutes les applications disponibles dans votre cluster big data :The following command lists all available applications in your big data cluster:

mssqlctl app list

Si vous spécifiez un nom et la version, il répertorie cette application spécifique et son état (création ou prêt) :If you specify a name and version, it lists that specific app and its state (Creating or Ready):

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

L’exemple suivant illustre cette commande :The following example demonstrates this command:

mssqlctl app list --name add-app --version v1

Vous devez voir une sortie similaire à l’exemple suivant :You should see output similar to the following example:

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

Exécuter une applicationRun an app

Si l’application est dans un Ready d’état, vous pouvez l’utiliser en l’exécutant avec vos paramètres d’entrée spécifiés.If the app is in a Ready state, you can use it by running it with your specified input parameters. Pour exécuter une application, utilisez la syntaxe suivante :Use the following syntax to run an app:

mssqlctl app run --name <app_name> --version <app_version> --inputs <inputs_params>

L’exemple de commande suivant montre la commande d’exécution :The following example command demonstrates the run command:

mssqlctl app run --name add-app --version v1 --inputs x=1,y=2

Si l’exécution a réussi, vous devez voir votre sortie comme spécifié lors de la création de l’application.If the run was successful, you should see your output as specified when you created the app. Voici un exemple.The following is an example.

{
  "changedFiles": [],
  "consoleOutput": "",
  "errorMessage": "",
  "outputFiles": {},
  "outputParameters": {
    "result": 3
  },
  "success": true
}

Créer une structure de l’applicationCreate an app skeleton

La commande init fournit une vue de structure avec les artefacts pertinentes qui est nécessaire pour déployer une application.The init command provides a scaffold with the relevant artifacts that is required for deploying an app. L’exemple ci-dessous crée hello, vous pouvez le faire en exécutant la commande suivante.The example below creates hello you can do this by running the following command.

mssqlctl app init --name hello --version v1 --template python

Cela créera un dossier appelé hello.This will create a folder called hello. Vous pouvez cd dans le répertoire et inspecter les fichiers générés dans le dossier.You can cd into the directory and inspect the generated files in the folder. spec.yaml définit l’application, telles que nom, version et le code source.spec.yaml defines the app, such as name, version and source code. Vous pouvez modifier la spécification pour modifier le nom, version, entrées et sorties.You can edit the spec to change name, version, input and outputs.

Voici un exemple de sortie à partir de la commande init qui s’affiche dans le dossierHere is a sample output from the init command that you will see in the folder

hello.py
README.md
run-spec.yaml
spec.yaml

Décrire une applicationDescribe an app

La commande describe fournit des informations détaillées sur l’application, y compris le point de terminaison dans votre cluster.The describe command provides detailed information about the app including the end point in your cluster. Cela est généralement utilisé par un développeur d’application pour générer une application à l’aide du client de swagger et le service Web pour interagir avec l’application de manière RESTful.This is typically used by an app developer to build an app using the swagger client and using the webservice to interact with the app in a RESTful manner. Consultez consommer des applications sur des clusters de données volumineuses pour plus d’informations.See Consume applications on big data clusters for more information.

{
  "input_param_defs": [
    {
      "name": "x",
      "type": "int"
    },
    {
      "name": "y",
      "type": "int"
    }
  ],
  "links": {
    "app": "https://10.1.1.3:30777/api/app/add-app/v1",
    "swagger": "https://10.1.1.3:30777/api/app/add-app/v1/swagger.json"
  },
  "name": "add-app",
  "output_param_defs": [
    {
      "name": "result",
      "type": "int"
    }
  ],
  "state": "Ready",
  "version": "v1"
}

Supprimer une applicationDelete an app

Pour supprimer une application à partir de votre cluster de données volumineux, utilisez la syntaxe suivante :To delete an app from your big data cluster, use the following syntax:

mssqlctl app delete --name add-app --version v1

Étapes suivantesNext steps

Découvrez comment intégrer des applications déployées sur SQL Server clusters de données volumineuses dans vos propres applications à consommer des applications sur des clusters de données volumineuses pour plus d’informations.Explore how to integrate apps deployed on SQL Server big data clusters in your own applications at Consume applications on big data clusters for more information. Vous pouvez également consulter des exemples supplémentaires à exemples de déploiement d’applications.You can also check out additional samples at App Deploy Samples.

Pour plus d’informations sur les clusters de données volumineuses de SQL Server, consultez que sont les clusters de données volumineuses de SQL Server 2019 ?.For more information about SQL Server big data clusters, see What are SQL Server 2019 big data clusters?.