Installer et utiliser Azure SQL Edge sur Raspberry Pi OS Lite avec Docker Engine
SOMMAIRE
I Introduction
II Installation de Docker Engine
III Installation de Azure SQL Edge sur Rapberry Pi
IV Connexion au moteur de base de données
IV Conclusion
I Introduction
Ce document va vous montrer comment installer un moteur de base de données Azure SQL Edge en utilisant Docker Engine avec une image fournie par Microsoft dans un container. Vous verrez dans un premier temps comment installer Docker Engine et ses composants. Dans un second temps, vous verrez comment téléchargez une image Docker de Azure SQL Edge et de l’ajouter dans un container. Nous verrons finalement comment accéder à ce moteur de base de données en utilisant Visual Studio Code sur un autre Raspberry Pi disposant d'une interface graphique.
II Installation de Docker Engine
Ouvrez une invite de commande sur un autre ordinateur de votre réseau en utilisant SSH ou bien connectez-vous sur le Raspberry Pi lui-même.
Commencez par effectuer les mises à jour du système :
$ sudo apt update
$ sudo apt upgrade
Le moyen le plus simple d’obtenir Docker est de télécharger le script install-docker.sh à l’adresse suivante : https://get.docker.com :
$ curl -fsSL https://get.docker.com -o install-docker.sh
Vous pouvez ensuite vérifier le contenu du fichier téléchargé :
$ cat install-docker.sh
Une étape supplémentaire permet de visualiser les différentes actions effectuées par le script :
$ sh install-docker.sh --dry-run
Puis de lancer le script :
$ sudo sh install-docker.sh
Si tout s’est ben passé vous devriez voir apparaître le résultat suivant dans l’invite de commande :

Pour vérifier la bonne installation de Docker vous pouvez exécuter cette commande :
$ docker –version
Vous deviez obtenir la sortie suivante :

Docker est maintenant installé avec ces composants associés.
III Installation de Azure SQL Edge sur Rapberry Pi
Il faut noter que MS SQL Server ne peut pas s’installer sur la plateforme Arm64, celle sur laquelle est architecturé le Raspberry Pi. Une autre solution s’offre à nous cependant en utilisant Azure SQL Edge.
A noter également que Microsoft met à notre disposition deux versions pour son nouveau moteur de base de données :
- L’édition Developer : chaque container est limité à 4 cœurs et à 32GB au maximum ;
- L’édition Premium : chaque container est limité à 8 cœurs et à 64 GB au maximum.
Maintenant que Docker est installé nous pouvons obtenir l’image de MS SQL Server 2022 grâce à cette commande :
$ sudo docker pull mcr.microsoft.com/azuze-sql-edge:latest
Vous devriez voir apparaître ceci pour vous informer des différents téléchargements en cours :

Une fois le tout téléchargé vous obtiendrez ce résultat :

Maintenant, nous pouvons lancer l’image dans un container grâce à cette ligne de commande :
$ sudo docker run -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=mdp' -p 1433:1433 --name sqledge -d mcr.microsoft.com/azure-sql-edge
Avec comme paramètres :
-e ‘ACCEPT_EULA=1’ : confirme l’acceptation de l’accord de licence.
-«e ‘MSQL_SA_PASSWORD=mdp’ définit le mot de passe d’accès au moteur de base de données
-p 1433 :1433 effectue la translation de port de votre container vers le port local TCP 1433
--name : le nom du container
-d : lance le container Docker en mode deamon suivi du nom de l’image que l’on vient de télécharger
A noter que cette commande a été exécuté pour lancer l’édition Developer. Pour lancer l’édition Premium il faut rajouter le paramètre -e ‘MSSQL_PID=Premium’.
Normalement une fois cette commande exécutée le moteur de base de données devrait être accessible. Pour en être sûr vous pouvez lancer cette commande qui vous permettra de voir si le processus est bien lancé :
$ docker ps -a

IV Connexion au moteur de base de données
Nous allons maintenant pouvoir nous connecter à Azure SQL Server à partir d’un autre Raspberry Pi sur le réseau disposant d’une interface graphique. Un des moyens de le faire est d’utiliser Visual Studio Code avec une extension SQL Server fournie par Microsoft.
Pour ce faire Lancez Visual Studio Code et cliquez sur l’icône des extensions, puis recherchez « SQL Server » :

Cliquez sur le premier élément de la liste, le contenu de cette extension apparaît dans la partie centrale et il suffit de cliquer sur le bouton «Installer » pour l’installer :

Une fois installée, deux nouveaux onglets apparaissent dans la barre latérale de gauche :

Cliquez sur le deuxième onglet pour créer une nouvelle connexion, et cliquez sur « Ajouter une connexion » dans le panel qui apparaît :

Dans la zone centrale un formulaire de Connexion à SQL Server s’affiche alors :

Donnez un nom de profil comme bon vous semble. Puis choisissez le moyen de connexion, dans cet exemple nous verrons la méthode de paramétrage par le formulaire en saisissant les informations dans les champs qu’il contient. Pour le plus aguerris vous pouvez passer en mode chaîne de connexion.
Dans le champ « Server Name » saisissez le hostname de l’ordinateur sur lequel vous avez démarré le container contenant l’image de Azure SQL Edge.
Pour le type d’authentification, laissez la valeur par défaut (SQL Login).
Vient ensuite le paramétrage de l’authentification en entrant comme « User name » la valeur SA et comme mot de passe, celui que vous avez renseigné dans la commande docker run plus haut.
Vous avez la possibilité d’enregistrer le mot de passe en cochant l’option du même nom.
Vous pouvez vous connecter directement à une base de données si vous le souhaitez dans le cas où vous en auriez déjà créé une, et ceci en renseignant son nom dans le champ « Database name ».
Le champ Encrypt doit avoir la valeur associée « Mandatory ».
Une fois le formulaire de connexion rempli, vous devez tester la connexion en cliquant sur le bouton « Connecter ».
Si tout s’est bien passé vous devriez voir apparaître dans le panel votre connexion fonctionnelle :

Vous pouvez commencer à créer vos objets dans SQL Server. Pour créer une nouvelle base de données par exemple cliquez sur le nœud correspondant au nom du profil que vous avez défini puis faites un clic droit puis sélectionnez « Nouvelle requête ».

Un nouveau fichier Untitled-1 est créé dans la partie centrale, vous pouvez maintenant écrire votre première requête.
Imaginons que nous voulons créer cette base de données. Créez un nouveau script de requête Transact-SQL et collez ce code :
USE Master
GO
IF NOT EXISTS (
SELECT name FROM
sys.databases
WHERE name = N'Sales'
)
CREATE DATABASE Sales;
GO
USE Sales
GO
CREATE TABLE contacts (
id int NOT NULL IDENTITY (1,1),
firstname CHAR(128) NOT NULL,
lastname CHAR(128) NOT NULL,
email CHAR(128) NOT NULL,
phone1 CHAR(20) NOT NULL,
phone2 CHAR(20),
c_address CHAR(255) NOT NULL,
zipcode CHAR(7) NOT NULL,
city CHAR(20) NOT NULL,
CONSTRAINT contacts_pk PRIMARY KEY (id)
);
CREATE TABLE sales (
id int NOT NULL IDENTITY (1,1),
PO_purchase_date DATE NOT NULL,
PO_received_date DATE NOT NULL,
contact_id int NOT NULL,
CONSTRAINT sales_pk PRIMARY KEY (id)
);
ALTER TABLE sales ADD CONSTRAINT sales_contact FOREIGN KEY (contact_id) REFERENCES contacts(id);
GO
Pour exécuter ce fichier de requêtes il faut cliquer sur le bouton Run dans la barre d’outils en haut de la fenêtre centrale :

Visual Studio Code peut alors vous demander à nouveau de saisir le nom du profil de connexion et le mot de passe de connexion.

Si tout s’est bien passé la nouvelle base de données doit apparaître dans le nœud « Bases de données » :

De plus dans le nœud « Tables » vous devriez retrouver les deux tables que l’on vient de créer dans le fichier :

Il ne reste plus qu’à alimenter les tables.
IV Conclusion
Le serveur de base de données est bien fonctionnel sur notre Raspberry Pi et on peut très bien créer des projets de développement architecturé autour de ce moteur de base de données sur une architecture Arm64 sur laquelle est basée notre Raspberry PI.