Azure SQL Edge是已優(yōu)化的關(guān)系數(shù)據(jù)庫引擎,更適合IoT和Azure IoT Edge部署。它提供了為IoT應(yīng)用和解決方案創(chuàng)建高性能數(shù)據(jù)存儲和處理層的功能。本快速入門介紹了如何開始在Azure門戶中使用Azure IoT Edge創(chuàng)建Azure SQL Edge模塊。
開始之前
·如果還沒有Azure訂閱,可以創(chuàng)建一個免費帳戶。
·登錄Azure門戶。
·創(chuàng)建Azure IoT中心。
·創(chuàng)建Azure IoT Edge設(shè)備。
備注
若要將Azure Linux VM部署為IoT Edge設(shè)備,請參閱這篇快速入門指南。
從Azure市場部署SQL Edge模塊
Azure市場是一個應(yīng)用程序和服務(wù)在線市場,可在其中瀏覽各種企業(yè)應(yīng)用程序和解決方案,這些應(yīng)用程序和解決方案針對在Azure上運行進行了認(rèn)證和優(yōu)化,包括IoT Edge模塊。Azure SQL Edge可以通過市場部署到邊緣設(shè)備。
1.在Azure市場中找到Azure SQL Edge模塊。
2.選擇最能滿足你需求的軟件計劃,然后單擊“創(chuàng)建”。
3.在“IoT Edge模塊的目標(biāo)設(shè)備”頁上,指定以下詳細信息,然后單擊“創(chuàng)建”
4.在“在設(shè)備上設(shè)置模塊:”頁上,單擊“IoT Edge模塊”下的Azure SQL Edge模塊。默認(rèn)模塊名稱為AzureSQLEdge。
5.在“更新IoT Edge模塊”邊欄選項卡上的“模塊設(shè)置”部分中,為“IoT Edge模塊名稱”、“重啟策略”和“所需狀態(tài)”指定所需值。
重要
請勿更改或更新模塊上的“映像URI”設(shè)置。
6.在“更新IoT Edge模塊”邊欄選項卡上的“環(huán)境變量”部分中,為環(huán)境變量指定所需值。有關(guān)Azure SQL Edge環(huán)境變量的完整列表,請參閱使用環(huán)境變量進行配置。為模塊定義以下默認(rèn)環(huán)境變量。
重要
請勿更改或更新模塊的“ACCEPT_EULA”環(huán)境變量。
7.在“更新 IoT Edge 模塊”邊欄選項卡上的“容器創(chuàng)建選項”部分中,根據(jù)要求更新以下選項。
·主機端口:將指定主機端口映射到容器中的端口 1433(默認(rèn) SQL 端口)。
·“綁定”和“裝載” :如需部署多個 SQL Edge 模塊,請確保更新裝載選項,以便為永久性卷新建源和目標(biāo)對。 若要詳細了解裝載和卷,請參閱 docker 文檔中的使用卷。
JSON
{
"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"
]
}
重要
請勿更改在創(chuàng)建配置設(shè)置中定義的 PlanId 環(huán)境變量。 如果更改此值,則 Azure SQL Edge 容器將無法啟動。
8.在“更新 IoT Edge 模塊”窗格上,單擊“更新” 。
9.如果需要為部署定義路由,則在“在設(shè)備上設(shè)置模塊”頁上,單擊“下一步:路由 >”。 否則,單擊“審閱 + 創(chuàng)建”。 有關(guān)配置路由的詳細信息,請參閱在 IoT Edge 中部署模塊和建立路由。
10.在“在設(shè)備上設(shè)置模塊”頁上,單擊“創(chuàng)建” 。
連接到 Azure SQL Edge
下列步驟在容器內(nèi)部使用 Azure SQL Edge 命令行工具 sqlcmd 來連接 Azure SQL Edge。
備注
SQL 命令行工具 (sqlcmd) 在 Azure SQL Edge 容器的 ARM64 版本中不可用。
1.使用 docker exec -it 命令在運行的容器內(nèi)部啟動交互式 Bash Shell。 在下面的示例中,azuresqledge 是由 IoT Edge 模塊的 Name 參數(shù)指定的名稱。
Bash
sudo docker exec -it azuresqledge "bash"
2.在容器內(nèi)部使用 sqlcmd 進行本地連接。 默認(rèn)情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。
Bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
提示
可以省略命令行上提示要輸入的密碼。
3.如果成功,應(yīng)會顯示 sqlcmd 命令提示符:1>。
創(chuàng)建和查詢數(shù)據(jù)
以下部分將引導(dǎo)你使用 sqlcmd 和 Transact-SQL 完成新建數(shù)據(jù)庫、添加數(shù)據(jù)并運行查詢的整個過程。
新建數(shù)據(jù)庫
1.以下步驟創(chuàng)建一個名為 TestDB 的新數(shù)據(jù)庫。
在 sqlcmd 命令提示符中,粘貼以下 Transact-SQL 命令以創(chuàng)建測試數(shù)據(jù)庫:
SQL
CREATE DATABASE TestDB
Go
2.在下一行中,編寫一個查詢以返回服務(wù)器上所有數(shù)據(jù)庫的名稱:
SQL
SELECT Name from sys.Databases
Go
插入數(shù)據(jù)
接下來創(chuàng)建一個新表 Inventory,然后插入兩個新行。
1.在 sqlcmd 命令提示符中,將上下文切換到新的 TestDB 數(shù)據(jù)庫:
SQL
USE TestDB
2.創(chuàng)建名為 Inventory 的新表:
SQL
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
3.將數(shù)據(jù)插入新表:
SQL
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
4.要執(zhí)行上述命令的類型 GO:
SQL
GO
選擇數(shù)據(jù)
現(xiàn)在,運行查詢以從 Inventory 表返回數(shù)據(jù)。
1.通過 sqlcmd 命令提示符輸入查詢,以返回 Inventory 表中數(shù)量大于 152 的行:
SQL
SELECT * FROM Inventory WHERE quantity > 152;
2.執(zhí)行此命令:
SQL
GO
退出 sqlcmd 命令提示符
1.要結(jié)束 sqlcmd 會話,請鍵入 QUIT:
SQL
QUIT
2.要在容器中退出交互式命令提示,請鍵入 exit。 退出交互式 Bash Shell 后,容器將繼續(xù)運行。
從容器外連接
可以從支持 SQL 連接的任何外部 Linux、Windows 或 macOS 工具連接 Azure SQL Edge 實例,并對其運行 SQL 查詢。 有關(guān)從外部連接到 SQL Edge 容器的詳細信息,請參閱連接和查詢 Azure SQL Edge。
在本快速入門中,你在 IoT Edge 設(shè)備上部署了 SQL Edge 模塊。