Implementación de Azure SQL Edge

Azure SQL Edge es un motor de base de datos relacional optimizado para implementaciones de IoT y Azure IoT Edge. Proporciona funcionalidades para crear una capa de procesamiento y almacenamiento de datos de alto rendimiento para las aplicaciones y soluciones de IoT. Esta guía de inicio rápido le muestra cómo comenzar a crear un módulo de Azure SQL Edge a través de Azure IoT Edge mediante Azure Portal.

Antes de empezar

Nota

Para implementar una máquina virtual Linux de Azure como un dispositivo IoT Edge, consulte esta guía de inicio rápido.

Implementación del módulo de SQL Edge desde Azure Marketplace

Azure Marketplace es un mercado de aplicaciones y servicios en línea en el que puede examinar una amplia gama de aplicaciones y soluciones empresariales que están certificadas y optimizadas para ejecutarse en Azure, incluyendo los módulos de IoT Edge. Azure SQL Edge se puede implementar en un dispositivo perimetral a través de Marketplace.

  1. Busque el módulo de Azure SQL Edge en Azure Marketplace.

    Captura de pantalla de SQL Edge en el Azure Marketplace.

  2. Elija el plan de software que mejor se adapte a sus requisitos y seleccione Crear.

    Captura de pantalla que muestra cómo elegir el plan de software correcto.

  3. En la página Dispositivos de destino para el módulo de IoT Edge, especifique los siguientes detalles y seleccione Crear.

    Campo Descripción
    Suscripción La suscripción de Azure en la que se creó el IoT Hub
    IoT Hub Nombre del IoT Hub en el que está registrado el dispositivo IoT Edge y, a continuación, seleccione la opción "Implementar en un dispositivo"
    Nombre de dispositivo IoT Edge Nombre del dispositivo IoT Edge en el que se implementará SQL Edge
  4. En la página Establecer módulos en el dispositivo, seleccione el módulo de Azure SQL Edge en Módulos de IoT Edge. El nombre del módulo predeterminado se establece en AzureSQLEdge.

  5. En la sección Configuración del módulo del panel Actualizar módulo IoT Edge, especifique los valores que desee para Nombre del módulo IoT Edge, Directiva de reinicio y Estado deseado.

    Importante

    No cambie ni actualice la configuración de URI de la imagen del módulo.

  6. En la sección Variables de entorno del panel Actualizar módulo IoT Edge, especifique los valores que desee para las variables de entorno. Para obtener una lista completa de las variables de entorno de Azure SQL Edge, consulte Configuración con variables de entorno. Se han definido las siguientes variables de entorno predeterminadas para el módulo.

    Parámetro Descripción
    MSSQL_SA_PASSWORD Cambie el valor predeterminado para especificar una contraseña segura para la cuenta de administrador de SQL Edge.
    MSSQL_LCID Cambie el valor predeterminado para establecer el identificador de idioma deseado que se va a usar para SQL Edge. Por ejemplo, 1036 es francés.
    MSSQL_COLLATION Cambie el valor predeterminado para establecer la intercalación predeterminada para SQL Edge. Esta configuración invalida la asignación predeterminada de identificador de idioma (LCID) a la intercalación.

    Importante

    No cambie ni actualice la variable de entorno ACCEPT_EULA para el módulo.

  7. En la sección Opciones de creación del contenedor del panel Actualizar módulo IoT Edge, actualice las siguientes opciones según sea necesario.

    • Puerto de host

      Asigne el puerto de host especificado al puerto 1433 (puerto SQL predeterminado) en el contenedor.

    • Enlaces y Montajes

      Si necesita implementar más de un módulo de SQL Edge, asegúrese de actualizar la opción Montajes para crear un nuevo par de origen y destino para el volumen persistente. Para obtener más información sobre los montajes y el volumen, consulte el artículo sobre cómo usar volúmenes en la documentación de Docker.

    {
        "HostConfig": {
            "CapAdd": [
                "SYS_PTRACE"
            ],
            "Binds": [
                "sqlvolume:/sqlvolume"
            ],
            "PortBindings": {
                "1433/tcp": [
                    {
                        "HostPort": "1433"
                    }
                ]
            },
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "sqlvolume",
                    "Target": "/var/opt/mssql"
                }
            ]
        },
        "Env": [
            "MSSQL_AGENT_ENABLED=TRUE",
            "ClientTransportType=AMQP_TCP_Only",
            "PlanId=asde-developer-on-iot-edge"
        ]
    }
    

    Importante

    No cambie la variable de entorno PlanId definida en la opción Crear configuración. Si se cambia este valor, el contenedor de Azure SQL Edge no se iniciará.

    Advertencia

    Si reinstala el módulo, recuerde quitar primero los enlaces que haya. De lo contrario, las variables de entorno no se actualizarán.

  8. En el panel Actualizar módulo IoT Edge, seleccione Actualizar.

  9. En la página Establecer módulos en el dispositivo, seleccione Siguiente: Rutas > si necesita definir rutas para la implementación. En caso contrario, seleccione Revisar y crear. Para obtener más información sobre la configuración de rutas, vea Implementación de módulos y establecimiento de rutas en IoT Edge.

  10. En la página Establecer módulos en el dispositivo, seleccione Crear.

Conexión a Azure SQL Edge

En los pasos siguientes, se usa la herramienta de línea de comandos de Azure SQL Edge, sqlcmd, dentro del contenedor para conectarse a Azure SQL Edge.

Nota

Las herramientas de línea de comandos de SQL Server, como sqlcmd, no están disponibles en la versión ARM64 de los contenedores de Azure SQL Edge.

  1. Use el comando docker exec -it para iniciar un shell de Bash interactivo dentro de su contenedor en ejecución. En el ejemplo siguiente, AzureSQLEdge es el nombre especificado por el Name parámetro del módulo de IoT Edge.

    sudo docker exec -it AzureSQLEdge "bash"
    
  2. Una vez dentro del contenedor, conecte localmente con la herramienta sqlcmd. sqlcmd no está en la ruta de acceso de forma predeterminada, por lo que deberá especificar la ruta de acceso completa.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    Sugerencia

    Puede omitir la contraseña en la línea de comandos para que se le solicite escribirla.

  3. Si se realiza correctamente, debe ver un símbolo de sistema de sqlcmd: 1>.

Creación y consulta de datos

En las secciones siguientes se le guía por el uso de sqlcmd y Transact-SQL para crear una base de datos, agregar datos y ejecutar una consulta.

Creación de una base de datos

En los pasos siguientes se crea una base de datos denominada TestDB.

  1. En el símbolo del sistema de sqlcmd, pegue el comando Transact-SQL siguiente para crear una base de datos de prueba:

    CREATE DATABASE TestDB;
    Go
    
  2. En la línea siguiente, escriba una consulta para devolver el nombre de todas las bases de datos del servidor:

    SELECT Name from sys.databases;
    Go
    

Insertar datos

Después, cree una tabla denominada Inventory e inserte dos filas nuevas.

  1. En el símbolo del sistema de sqlcmd, cambie el contexto a la nueva base de datos TestDB:

    USE TestDB;
    
  2. Cree una tabla llamada Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Inserte datos en la nueva tabla:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Escriba GO para ejecutar los comandos anteriores:

    GO
    

Selección de datos

Ahora ejecute una consulta para devolver datos desde la tabla Inventory.

  1. En el símbolo del sistema sqlcmd, escriba una consulta que devuelva filas desde la tabla Inventory donde la cantidad sea mayor que 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Ejecute el comando:

    GO
    

Salida del símbolo del sistema de sqlcmd

  1. Para finalizar la sesión de sqlcmd, escriba QUIT:

    QUIT
    
  2. Para salir de la línea de comandos interactiva del contenedor, escriba exit. El contenedor continuará ejecutándose después de salir del shell de Bash interactivo.

Conectarse desde fuera del contenedor

Puede conectarse a la instancia de Azure SQL Edge y ejecutar en ella consultas SQL desde cualquier herramienta externa de Linux, Windows o macOS compatible con las conexiones de SQL. Para más información sobre cómo conectarse a un contenedor de SQL Edge desde fuera, vea Conexión a Azure SQL Edge y consulta (versión preliminar).

Con esta guía de inicio rápido, ha implementado un módulo de SQL Edge en un dispositivo IoT Edge.

Pasos siguientes