部署 Azure SQL Edge
重要
Azure SQL Edge 将于 2025 年 9 月 30 日停用。 有关详细信息和迁移选项,请参阅停用通知。
注意
Azure SQL Edge 不再支持 ARM64 平台。
Azure SQL Edge 是已优化的关系数据库引擎,更适合 IoT 和 Azure IoT Edge 部署。 它提供了为 IoT 应用和解决方案创建高性能数据存储和处理层的功能。 本快速入门介绍了如何开始在 Azure 门户中使用 Azure IoT Edge 创建 Azure SQL Edge 模块。
- 如果没有 Azure 订阅,请创建一个试用版版订阅。
- 登录 Azure 门户。
- 创建 Azure IoT 中心。
- 创建 Azure IoT Edge 设备。
注意
若要将 Azure Linux VM 部署为 IoT Edge 设备,请参阅这篇快速入门指南。
可以根据从 Azure 门户部署模块中的说明来部署 Azure SQL Edge。 Azure SQL Edge 的映像 URI 为 mcr.microsoft.com/azure-sql-edge:latest
。
在“添加 IoT Edge 模块”页上,为“IoT Edge 模块名称”、“映像 URI”、“重启策略”和“所需状态”指定所需值。
根据要部署的版本使用以下映像 URI:
- 开发人员版本 -
mcr.microsoft.com/azure-sql-edge/developer
- 高级版本 -
mcr.microsoft.com/azure-sql-edge/premium
- 开发人员版本 -
在“添加 IoT Edge 模块”页上的“环境变量”部分中,为环境变量指定所需值。 有关 Azure SQL Edge 环境变量的完整列表,请参阅使用环境变量进行配置。
参数 说明 ACCEPT_EULA 将此值设置为 Y
以接受最终用户许可协议MSSQL_SA_PASSWORD 设置此值,以便为 SQL Edge 管理员帐户指定强密码。 MSSQL_LCID 设置此值,以设置要用于 SQL Edge 的所需语言 ID。 例如,1036 为法语。 MSSQL_COLLATION 设置此值,以设置 SQL Edge 的默认排序规则。 此设置替代语言 ID (LCID) 到排序规则的默认映射。 在“添加 IoT Edge 模块”页的“容器创建选项”部分,根据要求设置这些选项。
主机端口
将指定主机端口映射到容器中的端口 1433(默认 SQL 端口)。
绑定和装载
如需部署多个 SQL Edge 模块,请确保更新装载选项,以便为永久性卷新建源和目标对。 若要详细了解装载和卷,请参阅 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" ] }
重要
根据安装的版本设置
PlanId
环境变量。- 开发人员版本 -
asde-developer-on-iot-edge
- 高级版本 -
asde-premium-on-iot-edge
如果未正确设置此值,则 Azure SQL Edge 容器无法启动。
警告
如果重新安装模块,请记住先删除任何现有绑定,否则不会更新环境变量。
在“添加 IoT Edge 模块”页上,选择“添加”。
如果需要为部署定义路由,请在“在设备上设置模块”页上选择“下一步: 路由 >”。 否则请选择“查看 + 创建”。 有关配置路由的详细信息,请参阅在 IoT Edge 中部署模块和建立路由。
在“在设备上设置模块”页上,选择“创建”。
下列步骤在容器内部使用 Azure SQL Edge 命令行工具 sqlcmd 连接到由世纪互联运营的 Azure SQL Edge。
注意
SQL Sever 命令行工具(包括 sqlcmd)在 Azure SQL Edge 容器的 ARM64 版本中不可用。
使用
docker exec -it
命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,AzureSQLEdge
是由 IoT Edge 模块的Name
参数指定的名称。sudo docker exec -it AzureSQLEdge "bash"
在容器内部使用 sqlcmd 工具进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
提示
可以省略命令行上提示要输入的密码。
如果成功,应会显示 sqlcmd 命令提示符:
1>
。
以下部分将引导你使用 sqlcmd 和 Transact-SQL 完成新建数据库、添加数据并运行查询的整个过程。
以下步骤创建一个名为 TestDB
的新数据库。
在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE TestDB; GO
在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SELECT name from sys.databases; GO
接下来创建一个名为 Inventory
的新表,然后插入两个新行。
在 sqlcmd 命令提示符中,将上下文切换到新的
TestDB
数据库:USE TestDB;
创建名为
Inventory
的新表:CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
将数据插入新表:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
要执行上述命令的类型
GO
:GO
现在,运行查询以从 Inventory
表返回数据。
通过 sqlcmd 命令提示符输入查询,以返回
Inventory
表中数量大于 152 的行:SELECT * FROM Inventory WHERE quantity > 152;
执行此命令:
GO
要结束 sqlcmd 会话,请键入
QUIT
:QUIT
要在容器中退出交互式命令提示,请键入
exit
。 退出交互式 Bash Shell 后,容器将继续运行。
可以从支持 SQL 连接的任何外部 Linux、Windows 或 macOS 工具连接 Azure SQL Edge 实例,并对其运行 SQL 查询。 有关从外部连接到 SQL Edge 容器的详细信息,请参阅连接和查询 Azure SQL Edge。
在本快速入门中,你在 IoT Edge 设备上部署了 SQL Edge 模块。