Implementación de servicios web de Azure Machine Learning Studio (clásico) que usan módulos de importación y exportación de datosDeploy Azure Machine Learning Studio (classic) web services that use Data Import and Data Export modules

SE APLICA A: Se aplica a.Machine Learning Studio (clásico) No se aplica a.Azure Machine LearningAPPLIES TO: Applies to.Machine Learning Studio (classic) Does not apply to.Azure Machine Learning

Cuando se crea un experimento predictivo, normalmente se agregan una entrada y una salida de servicio web.When you create a predictive experiment, you typically add a web service input and output. Al implementar el experimento, los consumidores pueden enviar y recibir datos desde el servicio web a través de las entradas y salidas.When you deploy the experiment, consumers can send and receive data from the web service through the inputs and outputs. En algunas aplicaciones, los datos del consumidor pueden estar disponibles desde una fuente de datos o ya residir en un origen de datos externo, como el Almacenamiento de blobs de Azure.For some applications, a consumer's data may be available from a data feed or already reside in an external data source such as Azure Blob storage. En estos casos, no se requiere que lean y escriban datos mediante entradas y salidas del servicio web.In these cases, they do not need read and write data using web service inputs and outputs. En su lugar, pueden utilizar el servicio de ejecución por lotes (BES) para leer los datos del origen de datos mediante un módulo de importación de datos y escribir los resultados de puntuación en una ubicación de datos diferente mediante un módulo de exportación de datos.They can, instead, use the Batch Execution Service (BES) to read data from the data source using an Import Data module and write the scoring results to a different data location using an Export Data module.

Los módulos de importación y exportación de datos pueden realizar operaciones de lectura y escritura en diversas ubicaciones de datos, como una dirección URL web a través de HTTP, una consulta de Hive, una base de datos en Azure SQL Database, almacenamiento de tablas de Azure, Azure Blob Storage, un proveedor de fuentes de distribución de datos o una base de datos de SQL Server.The Import Data and Export data modules, can read from and write to various data locations such as a Web URL via HTTP, a Hive Query, a database in Azure SQL Database, Azure Table storage, Azure Blob storage, a Data Feed provide, or a SQL Server database.

En este tema se utiliza el "Ejemplo 5: entrenamiento, prueba y evaluación para la clasificación binaria: conjunto de datos sobre adultos" y se da por supuesto que el conjunto de datos se ha cargado en una tabla de Azure SQL denominada censusdata.This topic uses the "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" sample and assumes the dataset has already been loaded into an Azure SQL table named censusdata.

Creación del experimento de entrenamientoCreate the training experiment

Al abrir el "Ejemplo 5: entrenamiento, prueba y evaluación para la clasificación binaria: conjunto de datos sobre adultos" se usa el conjunto de datos de clasificación binaria de ingresos en el censo de adultos.When you open the "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" sample it uses the sample Adult Census Income Binary Classification dataset. Asimismo, el experimento en el lienzo tendrá una apariencia similar a la siguiente imagen:And the experiment in the canvas will look similar to the following image:

Configuración inicial del experimento.

Para leer los datos de la tabla de SQL de Azure:To read the data from the Azure SQL table:

  1. Elimine el módulo del conjunto de datos.Delete the dataset module.

  2. En el cuadro de búsqueda de componentes, escriba import.In the components search box, type import.

  3. En la lista de resultados, agregue un módulo Importar datos al lienzo del experimento.From the results list, add an Import Data module to the experiment canvas.

  4. Conecte la salida del módulo Import Data (Importar datos) a la entrada del módulo Clean Missing Data (Limpiar datos que faltan).Connect output of the Import Data module the input of the Clean Missing Data module.

  5. En el panel de propiedades, seleccione Azure SQL Database en el menú desplegable Origen de datos.In properties pane, select Azure SQL Database in the Data Source dropdown.

  6. En los campos Nombre del servidor de base de datos, Nombre de base de datos, Nombre de usuario y Contraseña, escriba la información apropiada para la base de datos.In the Database server name, Database name, User name, and Password fields, enter the appropriate information for your database.

  7. En el campo Consulta de base de datos, escriba la siguiente consulta.In the Database query field, enter the following query.

     select [age],
        [workclass],
        [fnlwgt],
        [education],
        [education-num],
        [marital-status],
        [occupation],
        [relationship],
        [race],
        [sex],
        [capital-gain],
        [capital-loss],
        [hours-per-week],
        [native-country],
        [income]
     from dbo.censusdata;
    
  8. En la parte inferior del lienzo del experimento, haga clic en Ejecutar.At the bottom of the experiment canvas, click Run.

Creación del experimento predictivoCreate the predictive experiment

A continuación, configure el experimento predictivo desde el que se implementa el servicio web.Next you set up the predictive experiment from which you deploy your web service.

  1. En la parte inferior del lienzo del experimento, haga clic en Set Up Web Service (Configurar servicio web) y seleccione Predictive Web Service [Recommended] (Servicio web predictivo [recomendado]).At the bottom of the experiment canvas, click Set Up Web Service and select Predictive Web Service [Recommended].
  2. Quite los módulos Web Service Input (Entrada del servicio web) y Web Service Output (Salida del servicio web) del experimento predictivo.Remove the Web Service Input and Web Service Output modules from the predictive experiment.
  3. En el cuadro de búsqueda de componentes, escriba export.In the components search box, type export.
  4. En la lista de resultados, agregue un módulo Exportar datos al lienzo del experimento.From the results list, add an Export Data module to the experiment canvas.
  5. Conecte la salida del módulo Score Model (Puntuar modelo) a la entrada del módulo Export Data (Exportar datos).Connect output of the Score Model module the input of the Export Data module.
  6. En el panel de propiedades, seleccione Azure SQL Database en el menú desplegable Origen de datos.In properties pane, select Azure SQL Database in the data destination dropdown.
  7. En los campos Nombre del servidor de base de datos, Nombre de base de datos, Server user account name (Nombre de la cuenta de usuario del servidor) y Server user account password (Contraseña de la cuenta de usuario del servidor) escriba la información apropiada para la base de datos.In the Database server name, Database name, Server user account name, and Server user account password fields, enter the appropriate information for your database.
  8. En el campo Comma separated list of columns to be saved (Lista de elementos separados por comas de las columnas que guardar) escriba Scored Labels.In the Comma separated list of columns to be saved field, type Scored Labels.
  9. En el campo Data table name(Nombre de tabla de datos), escriba dbo.ScoredLabels.In the Data table name field, type dbo.ScoredLabels. Si la tabla no existe, se crea cuando se ejecuta el experimento o se llama al servicio web.If the table does not exist, it is created when the experiment is run or the web service is called.
  10. En el campo Comma separated list of datatable columns (Lista de elementos separados por comas de las columnas de tablas de datos) escriba ScoredLabels.In the Comma separated list of datatable columns field, type ScoredLabels.

Cuando se escribe una aplicación que llama al servicio web final, puede especificar una consulta de entrada diferente u otra tabla de destino en tiempo de ejecución.When you write an application that calls the final web service, you may want to specify a different input query or destination table at run time. Para configurar estas entradas y salidas, utilice la característica de parámetros del servicio web para establecer la propiedad Origen de datos del módulo Importar datos y la propiedad de destino de datos del módulo Exportar datos.To configure these inputs and outputs, use the Web Service Parameters feature to set the Import Data module Data source property and the Export Data mode data destination property. Para obtener más información sobre los parámetros del servicio web, consulte la entrada Azure Machine Learning Studio Web Service Parameters (Parámetros del servicio web de Azure Machine Learning Studio) en el blog de Cortana Intelligence y Machine Learning.For more information on Web Service Parameters, see the Azure Machine Learning Studio Web Service Parameters entry on the Cortana Intelligence and Machine Learning Blog.

Para configurar los parámetros del servicio web para la consulta de importación y la tabla de destino:To configure the Web Service Parameters for the import query and the destination table:

  1. En el panel de propiedades del módulo Import Data (Importar datos), haga clic en el icono situado en la parte superior derecha del campo Consulta de base de datos y seleccione Set as web service parameter (Establecer como parámetro de servicio web).In the properties pane for the Import Data module, click the icon at the top right of the Database query field and select Set as web service parameter.
  2. En el panel de propiedades del módulo Export Data (Exportar datos), haga clic en el icono situado en la parte superior derecha del campo Nombre de la tabla de datos y seleccione Set as web service parameter (Establecer como parámetro de servicio web).In the properties pane for the Export Data module, click the icon at the top right of the Data table name field and select Set as web service parameter.
  3. En la parte inferior del panel de propiedades del módulo Exportar datos , en la sección Parámetros del servicio web , haga clic en Consulta de base de datos y cambie el nombre por Query.At the bottom of the Export Data module properties pane, in the Web Service Parameters section, click Database query and rename it Query.
  4. Haga clic en Nombre de la tabla de datos y cambie el nombre por Table.Click Data table name and rename it Table.

Cuando haya terminado, el experimento debería tener un aspecto similar a la siguiente imagen:When you are done, your experiment should look similar to the following image:

Aspecto final del experimento.

Ahora puede implementar el experimento predictivo como servicio web.Now you can deploy the experiment as a web service.

Implementación del servicio webDeploy the web service

Puede realizar la implementación en un servicio web clásico o nuevo.You can deploy to either a Classic or New web service.

Implementación de un servicio web clásicoDeploy a Classic Web Service

Para realizar la implementación como un servicio web clásico y crear una aplicación para usarla:To deploy as a Classic Web Service and create an application to consume it:

  1. En la parte inferior del lienzo del experimento, haga clic en Ejecutar.At the bottom of the experiment canvas, click Run.

  2. Cuando la ejecución haya terminado, haga clic en Deploy Web Service (Implementar servicio web) y seleccione Deploy Web Service [Classic] (Implementar servicio web [clásico]).When the run has completed, click Deploy Web Service and select Deploy Web Service [Classic].

  3. En el panel del servicio web, busque la clave de API.On the web service dashboard, locate your API key. Copie y guárdela para usarla más adelante.Copy and save it to use later.

  4. En la tabla Default Endpoint (Punto de conexión predeterminado), haga clic en el vínculo Ejecución de lotes para abrir la página de Ayuda de API.In the Default Endpoint table, click the Batch Execution link to open the API Help Page.

  5. En Visual Studio, cree una aplicación de consola en C#: Nuevo > Proyecto > Visual C# > Escritorio clásico de Windows > Aplicación de consola (.NET Framework) .In Visual Studio, create a C# console application: New > Project > Visual C# > Windows Classic Desktop > Console App (.NET Framework).

  6. En la página de Ayuda de API, busque la sección Sample Code (Ejemplo de código) en la parte inferior de la página.On the API Help Page, find the Sample Code section at the bottom of the page.

  7. Copie y pegue el ejemplo de código de C# en el archivo Program.cs y quite todas las referencias al Almacenamiento de blobs.Copy and paste the C# sample code into your Program.cs file, and remove all references to the blob storage.

  8. Actualice el valor de la variable apiKey con la clave de API guardada anteriormente.Update the value of the apiKey variable with the API key saved earlier.

  9. Busque la declaración de solicitud y actualice los valores de los parámetros del servicio web que se pasan a los módulos Import Data (Importar datos) y Export Data (Exportar datos).Locate the request declaration and update the values of Web Service Parameters that are passed to the Import Data and Export Data modules. En este caso, utilice la consulta original, pero defina un nuevo nombre de tabla.In this case, you use the original query, but define a new table name.

    var request = new BatchExecutionRequest()
    {
        GlobalParameters = new Dictionary<string, string>() {
            { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" },
            { "Table", "dbo.ScoredTable2" },
        }
    };
    
  10. Ejecute la aplicación.Run the application.

Al término de la ejecución, se agrega una nueva tabla a la base de datos que contiene los resultados de puntuación.On completion of the run, a new table is added to the database containing the scoring results.

Implementación de servicios web nuevosDeploy a New Web Service

Nota

Para implementar un nuevo servicio web, debe tener permisos suficientes en la suscripción en la que lo implementa.To deploy a New web service you must have sufficient permissions in the subscription to which you deploying the web service. Para obtener más información, consulte Administración de un servicio web mediante el portal Servicios web Azure Machine Learning.For more information, see Manage a Web service using the Azure Machine Learning Web Services portal.

Para realizar la implementación como un servicio web nuevo y crear una aplicación para usarla:To deploy as a New Web Service and create an application to consume it:

  1. En la parte inferior del lienzo del experimento, haga clic en Ejecutar.At the bottom of the experiment canvas, click Run.

  2. Cuando la ejecución haya terminado, haga clic en Deploy Web Service (Implementar servicio web) y seleccione Deploy Web Service [New] (Implementar servicio web [nuevo]).When the run has completed, click Deploy Web Service and select Deploy Web Service [New].

  3. En la página Deploy Experiment (Implementar experimento), escriba un nombre para el servicio web, seleccione un plan de precios y haga clic en Implementar.On the Deploy Experiment page, enter a name for your web service, and select a pricing plan, then click Deploy.

  4. En la página Inicio rápido, haga clic en Consume (Consumir).On the Quickstart page, click Consume.

  5. En la sección Sample Code (Ejemplo de código), haga clic en Batch.In the Sample Code section, click Batch.

  6. En Visual Studio, cree una aplicación de consola en C#: Nuevo > Proyecto > Visual C# > Escritorio clásico de Windows > Aplicación de consola (.NET Framework) .In Visual Studio, create a C# console application: New > Project > Visual C# > Windows Classic Desktop > Console App (.NET Framework).

  7. Copie y pegue el ejemplo de código de C# en el archivo Program.cs.Copy and paste the C# sample code into your Program.cs file.

  8. Actualice el valor de la variable apiKey con la clave principal ubicada en la sección Basic consumption info (Información básica de consumo).Update the value of the apiKey variable with the Primary Key located in the Basic consumption info section.

  9. Busque la declaración scoreRequest y actualice los valores de los parámetros del servicio web que se pasan a los módulos Import Data (Importar datos) y Export Data (Exportar datos).Locate the scoreRequest declaration and update the values of Web Service Parameters that are passed to the Import Data and Export Data modules. En este caso, utilice la consulta original, pero defina un nuevo nombre de tabla.In this case, you use the original query, but define a new table name.

    var scoreRequest = new
    {
        Inputs = new Dictionary<string, StringTable>()
        {
        },
        GlobalParameters = new Dictionary<string, string>() {
            { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" },
            { "Table", "dbo.ScoredTable3" },
        }
    };
    
  10. Ejecute la aplicación.Run the application.