Развертывание SQL Azure для пограничных вычислений

Важно!

Azure SQL Edge больше не поддерживает платформу ARM64.

SQL Azure для пограничных вычислений — это ядро реляционной базы данных, оптимизированное для развертываний Интернета вещей и Azure IoT Edge. Эта служба предоставляет возможности для создания высокопроизводительного хранилища данных и уровня обработки для приложений и решений Интернета вещей. В этом кратком руководстве описано, как начать работу с создания модуля SQL Azure для пограничных вычислений в Azure IoT Edge с помощью портала Azure.

Подготовка к работе

Примечание.

Сведения о развертывании виртуальной машины Linux в Azure в качестве устройства IoT Edge см. в этом кратком руководстве.

Развертывание модуля SQL для пограничных вычислений из Azure Marketplace

Azure Marketplace — это интернет-магазин приложений и служб, где вы можете просматривать разнообразные корпоративные приложения и решения, сертифицированные и оптимизированные для работы в Azure, включая модули IoT Edge. SQL Azure для пограничных вычислений можно развернуть на пограничном устройстве из Marketplace.

  1. Найдите модуль SQL для пограничных вычислений в Azure Marketplace.

    Screenshot of SQL Edge in the Azure Marketplace.

  2. Выберите план программного обеспечения, который лучше всего соответствует вашим требованиям, и нажмите кнопку "Создать".

    Screenshot showing how to pick the correct software plan.

  3. На странице "Целевые устройства для модуля IoT Edge" укажите следующие сведения и нажмите кнопку "Создать".

    Поле Description
    Подписка Подписка Azure, в которой был создан Центр Интернета вещей.
    Центр IoT Имя центра Интернета вещей, в котором зарегистрировано устройство IoT Edge. Указав его, выберите вариант "Развертывание на устройстве".
    Имя устройства IoT Edge Имя устройства IoT Edge, где будет развернут экземпляр SQL для пограничных вычислений.
  4. На странице "Задать модули" на устройстве выберите модуль SQL Azure edge в разделе "Модули IoT Edge". Имя модуля по умолчанию имеет значение AzureSQLEdge.

  5. В разделе "Модуль Параметры" области "Обновить модуль IoT Edge" укажите требуемые значения для имени модуля IoT Edge, политики перезапуска и требуемого состояния.

    Важно!

    Не изменяйте или не обновляйте параметры URI образа в модуле.

  6. В разделе "Переменные среды" области "Обновить модуль IoT Edge" укажите требуемые значения переменных среды. Полный список переменных среды SQL Azure для пограничных вычислений см. в статье "Настройка использования переменных среды". Для модуля определены следующие переменные среды по умолчанию.

    Параметр Описание
    MSSQL_SA_PASSWORD Измените значение по умолчанию, чтобы указать надежный пароль для учетной записи администратора SQL для пограничных вычислений.
    MSSQL_LCID Измените значение по умолчанию, чтобы задать нужный идентификатор языка для использования со SQL для пограничных вычислений. Например, значение 1036 соответствует французскому языку.
    MSSQL_COLLATION Измените значение по умолчанию, чтобы задать параметры сортировки по умолчанию для SQL для пограничных вычислений. Этот параметр переопределяет заданное по умолчанию сопоставление идентификатора языка (LCID) и параметров сортировки.

    Важно!

    Не изменяйте или не обновляйте ACCEPT_EULA переменную среды для модуля.

  7. В разделе "Параметры создания контейнера" области "Обновить модуль 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 в параметре создания конфигурации. Если это значение изменено, контейнер SQL Azure для пограничных вычислений не запустится.

    Предупреждение

    Если вы переустановите модуль, сначала не забудьте удалить все существующие привязки, в противном случае переменные среды не будут обновлены.

  8. На панели "Обновить модуль IoT Edge" нажмите кнопку "Обновить".

  9. На странице "Задать модули" на устройстве нажмите кнопку "Далее: маршруты > ", если необходимо определить маршруты для развертывания. В противном случае нажмите кнопку "Проверить и создать". Дополнительные сведения см. в разделе Развертывание модулей и объявление маршрутов в IoT Edge.

  10. На странице "Задать модули" на странице устройства нажмите кнопку "Создать".

Подключение к службе SQL Azure для пограничных вычислений

На следующем шаге воспользуемся средством командной строки SQL Azure для пограничных вычислений sqlcmd внутри контейнера для подключения к SQL Azure для пограничных вычислений.

Примечание.

Средства командной строки SQL Server, включая sqlcmd, недоступны в версии ARM64 контейнеров SQL Azure Для пограничных вычислений.

  1. Выполните команду docker exec -it, чтобы запустить интерактивную оболочку bash внутри запущенного контейнера. В следующем примере используется имя, AzureSQLEdge указанное параметром Name модуля IoT Edge.

    sudo docker exec -it AzureSQLEdge "bash"
    
  2. После подключения в контейнере подключитесь локально с помощью средства sqlcmd . sqlcmd по умолчанию не указан в пути, поэтому необходимо указать полный путь.

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

    Совет

    Вы можете опустить пароль в командной строке. В этом случае вы получите приглашение для его ввода.

  3. Если все сработает должным образом, вы перейдете к приглашению команды sqlcmd: 1>.

Создание и запрос данных

В следующих разделах приведено пошаговое руководство по созданию базы данных, добавлению данных и запуску запроса с использованием sqlcmd и Transact-SQL.

Создание базы данных

Выполните следующие шаги, чтобы создать базу данных TestDB.

  1. В приглашении команды sqlcmd вставьте следующую команду Transact-SQL, чтобы создать тестовую базу данных:

    CREATE DATABASE TestDB;
    GO
    
  2. В следующей строке напишите запрос, который должен вернуть имена всех баз данных на сервере:

    SELECT name from sys.databases;
    GO
    

Вставка данных

Затем создайте новую таблицу с именем Inventoryи вставьте две новые строки.

  1. В приглашении команды sqlcmd переключите контекст на новую базу данных TestDB:

    USE TestDB;
    
  2. Создайте таблицу Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Вставьте данные в новую таблицу:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Введите GO, чтобы выполнить предыдущие команды:

    GO
    

Выбор данных

Теперь выполните запрос, чтобы вернуть данные из таблицы Inventory.

  1. В приглашении команды sqlcmd введите запрос, который должен вернуть из таблицы Inventory строки, где количество превышает 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Выполните команду:

    GO
    

Выход из приглашения команды sqlcmd

  1. Чтобы завершить сеанс sqlcmd, введите QUIT:

    QUIT
    
  2. Чтобы выйти из интерактивной командной строки в контейнере, введите команду exit. Контейнер продолжит работать после выхода из интерактивной оболочки bash.

Подключение за пределами контейнера

Вы можете подключаться и выполнять запросы к вашему экземпляру SQL Azure для пограничных вычислений с помощью любого внешнего инструмента в Linux, Windows или macOS, поддерживающего подключения SQL. Дополнительные сведения о подключении к контейнеру SQL Edge извне см. в Подключение и запросе Sql Azure Edge.

Из этого краткого руководства вы узнали, как развернуть модуль SQL для пограничных вычислений на устройстве IoT Edge.

Следующие шаги