الاتصال Azure SQL Edge والاستعلام عنه
في Azure SQL Edge، بعد نشر حاوية، يمكنك الاتصال بمشغل قاعدة البيانات من أي من المواقع التالية:
- داخل الحاوية
- من حاوية Docker أخرى تعمل على نفس المضيف
- وارد من الجهاز المضيف
- من أي جهاز عميل آخر على الشبكة
أدوات للاتصال ب Azure SQL Edge
يمكنك الاتصال بمثيل Azure SQL Edge من أي من هذه الأدوات الشائعة:
- sqlcmd: يتم تضمين أدوات عميل sqlcmd بالفعل في صورة حاوية Azure SQL Edge. إذا قمت بإرفاقها بحاوية قيد التشغيل مع غلاف bash تفاعلي ، فيمكنك تشغيل الأدوات محليا. SQL أدوات العميل غير متوفرة على النظام الأساسي ARM64، على هذا النحو لا يتم تضمينها في إصدار ARM64 من حاويات SQL Edge.
- SQL Server Management Studio
- Azure Data Studio
- تعليمة Visual Studio برمجية
للاتصال بمحرك قاعدة بيانات Azure SQL Edge من جهاز شبكة، تحتاج إلى ما يلي:
عنوان IP أو اسم الشبكة للجهاز المضيف: هذا هو الجهاز المضيف حيث يتم تشغيل حاوية Azure SQL Edge.
تعيين منفذ مضيف حاوية Azure SQL Edge: هذا هو تعيين منفذ حاوية Docker إلى منفذ على المضيف. داخل الحاوية، يتم دائما تعيين Azure SQL Edge إلى المنفذ 1433. يمكنك تغيير هذا إذا كنت ترغب في ذلك. لتغيير رقم المنفذ، قم بتحديث خيارات إنشاء الحاوية للوحدة النمطية Azure SQL Edge في Azure IoT Edge. في المثال التالي، يتم تعيين المنفذ 1433 على الحاوية إلى المنفذ 1600 على المضيف.
{ "PortBindings": { "1433/tcp": [ { "HostPort": "1600" } ] } }كلمة مرور SA لمثيل Azure SQL Edge: هذه هي القيمة المحددة لمتغير
SA_PASSWORDالبيئة أثناء نشر Azure SQL Edge.
الاتصال إلى محرك قاعدة البيانات من داخل الحاوية
يتم تضمين أدوات سطر الأوامر SQL Server في صورة حاوية Azure SQL Edge. إذا قمت بإرفاقها بالحاوية باستخدام موجه أوامر تفاعلي، فيمكنك تشغيل الأدوات محليا. SQL أدوات العميل غير متوفرة على النظام الأساسي ARM64، على هذا النحو لا يتم تضمينها في إصدار ARM64 من حاويات SQL Edge.
استخدم
docker exec -itالأمر لبدء الاستخدام التفاعلي داخل الحاوية قيد التشغيل. في المثال التالي ،e69e056c702dهو معرف الحاوية.docker exec -it <Azure SQL Edge container ID or name> /bin/bashتلميح
ليس عليك دائما تحديد معرف الحاوية بالكامل. ما عليك سوى تحديد أحرف كافية لتعريفها بشكل فريد. لذلك في هذا المثال ، قد يكون كافيا استخدام
e6أوe69، بدلا من المعرف الكامل.عندما تكون داخل الحاوية، اتصل محليا باستخدام sqlcmd. Sqlcmd ليس في المسار بشكل افتراضي ، لذلك يجب عليك تحديد المسار الكامل.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'عند الانتهاء من استخدام sqlcmd، اكتب
exit.عند الانتهاء من موجه الأوامر التفاعلي، اكتب
exit. يستمر تشغيل حاويتك حتى بعد الخروج من shell bash التفاعلية.
الاتصال إلى Azure SQL Edge من حاوية أخرى على نفس المضيف
نظرا لأن حاويتين تعملان على نفس المضيف موجودتان على نفس شبكة Docker، يمكنك الوصول إليهما بسهولة باستخدام اسم الحاوية وعنوان المنفذ الخاص بالخدمة. على سبيل المثال، إذا كنت تتصل بمثيل Azure SQL Edge من وحدة نمطية (حاوية) أخرى ل Python على نفس المضيف، فيمكنك استخدام سلسلة اتصال مشابهة لما يلي. (يفترض هذا المثال أنه تم تكوين Azure SQL Edge للاستماع على المنفذ الافتراضي.)
import pyodbc
server = 'MySQLEdgeContainer' # Replace this with the actual name of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)
الاتصال إلى Azure SQL Edge من جهاز شبكة آخر
قد ترغب في الاتصال بمثيل Azure SQL Edge من جهاز آخر على الشبكة. للقيام بذلك، استخدم عنوان IP الخاص بمضيف Docker ومنفذ المضيف الذي تم تعيين حاوية Azure SQL Edge إليه. على سبيل المثال، إذا كان عنوان IP الخاص بمضيف Docker xxx.xxx.xxx.xxx، وتم تعيين حاوية Azure SQL Edge إلى منفذ المضيف 1600، فسيكون عنوان الخادم لمثيل Azure SQL Edge هو xxx.xxx.xxx.xxx,1600. البرنامج النصي المحدث ل Python هو:
import pyodbc
server = 'xxx.xxx.xxx.xxx,1600' # Replace this with the actual name of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)
للاتصال بمثيل Azure SQL Edge باستخدام SQL Server Management Studio قيد التشغيل على جهاز Windows، راجع SQL Server Management Studio.
للاتصال بمثيل من Azure SQL Edge باستخدام التعليمات البرمجية Visual Studio على جهاز Windows أو Mac أو Linux، راجع التعليمات البرمجية Visual Studio.
للاتصال بمثيل Azure SQL Edge باستخدام Azure Data Studio على جهاز Windows أو Mac أو Linux، راجع Azure Data Studio.