إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوضح التشغيل السريع كيفية الاتصال بقاعدة بيانات Azure لـ PostgreSQL باستخدام لغة Go (golang). توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات. تفترض هذه المقالة أنك على دراية بالتطوير باستخدام Go، ولكنك جديد في العمل مع قاعدة بيانات Azure لـ PostgreSQL.
Prerequisites
يستخدم هذا التشغيل السريع الموارد التي تم إنشاؤها في إنشاء قاعدة بيانات Azure ل PostgreSQL كنقطة بداية.
Important
استخدم خادما مع تمكين الوصول العام (عناوين IP المسموح بها) لبدء التشغيل السريع هذا. قد يتضمن استخدام خادم مع وصول خاص (تكامل VNet) ممكن لإكمال هذا التشغيل السريع خطوات إضافية غير مشمولة.
تأكد من إضافة عنوان IP الذي تتصل منه إلى قواعد جدار الحماية للخادم باستخدام مدخل Azure أو Azure CLI.
تثبيت Go وموصل pq
تثبيت Go وبرنامج التشغيل Pure Go Postgres (pq) على جهازك. اعتمادًا على نظامك الأساسي، اتبع الخطوات المناسبة:
قم بتنزيل وتثبيت Go لـ Microsoft Windows وفقًا لإرشادات التثبيت.
قم بتشغيل موجه الأوامر من قائمة البدء.
أنشئ مجلدا لمشروعك، مثل
mkdir %USERPROFILE%\go\src\postgresqlgo.قم بتغيير الدليل إلى مجلد المشروع، مثل
cd %USERPROFILE%\go\src\postgresqlgo.قم بتعيين متغير البيئة لـ GOPATH للإشارة إلى دليل التعليمة البرمجية المصدر.
set GOPATH=%USERPROFILE%\go.قم بتشغيل go mod init لإنشاء وحدة نمطية في الدليل الحالي. على سبيل المثال:
go mod init postgresqlgo.-
<module_path>المعلمة هي عموما موقع في مستودع GitHub - مثلgithub.com/<your_github_account_name>/<directory>. - عند إنشاء تطبيق سطر أوامر كاختبار ولن تنشر التطبيق،
<module_path>لا يحتاج إلى الإشارة إلى موقع فعلي. على سبيل المثال،postgresqlgo
-
قم بتثبيت برنامج التشغيل Pure Go Postgres (pq) عن طريق تشغيل الأمر
go get github.com/lib/pq.باختصار، قم بتثبيت Go، ثم قم بتشغيل هذه الأوامر في موجه الأوامر:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
الحصول على معلومات الاتصال
الحصول على معلومات الاتصال المطلوبة للاتصال بقاعدة بيانات Azure لـ PostgreSQL. تحتاج إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد المصادقة.
- سجّل الدخول إلى مدخل Azure.
- من القائمة اليسرى في بوابة Azure، اختر All Resources، ثم ابحث عن الخادم الذي أنشأته (مثل mydemoserver).
- حدد اسم الخادم.
- من لوحة نظرة عامة على الخادم، دوّن ملاحظة عن اسم الخادم واسم تسجيل دخول مسؤول الخادم. إذا نسيت كلمة المرور، يمكنك أيضًا إعادة تعيين كلمة المرور من هذه اللوحة.
بناء وتشغيل كود Go
- لكتابة التعليمات البرمجية Go، استخدم محرر نص عادي، مثل المفكرة في Microsoft Windows أو Nano في Ubuntu أو TextEdit في macOS. إذا كنت تفضل بيئة تطوير تفاعلية أكثر ثراء (IDE)، فجرب GoLand بواسطة JetBrains، تعليمة Visual Studio برمجية بواسطة Microsoft، أو Atom.
- الصق التعليمات البرمجية Go من الأقسام التالية في الملفات النصية، واحفظها في مجلد المشروع الخاص بك مع ملحق الملف *.go، مثل مسار
%USERPROFILE%\go\src\postgresqlgo\createtable.goWindows أو مسار~/go/src/postgresqlgo/createtable.goLinux . - حدد موقع الثوابت
HOSTوDATABASEوUSERوPASSWORDفي التعليمات البرمجية، واستبدل نماذج القيم بقيمك الخاصة. عند إنشاء خادم قاعدة بيانات Azure لـ PostgreSQL، يمكنك إنشاء قاعدة بيانات باسم postgres. يمكنك استخدام قاعدة البيانات هذه أو قاعدة بيانات أخرى تقوم بإنشائها. - قم بتشغيل موجه الأوامر أو Bash shell. قم بتغيير الدليل إلى مجلد المشروع الخاص بك. على سبيل المثال، في Windows، استخدم
cd %USERPROFILE%\go\src\postgresqlgo\. على Linux، استخدمcd ~/go/src/postgresqlgo/. تقدم بعض بيئات IDE المذكورة إمكانيات التصحيح ووقت التشغيل دون الحاجة إلى أوامر shell. - قم بتشغيل الكود عن طريق كتابة الأمر
go run createtable.goلترجمة التطبيق وتشغيله. - بدلا من ذلك، لإنشاء التعليمات البرمجية في تطبيق أصلي، استخدم
go build createtable.go. ثم قم بتشغيلcreatetable.exeلتشغيل التطبيق.
توصيل جدول وإنشائه
استخدم التعليمات البرمجية التالية للاتصال وإنشاء جدول باستخدام عبارة CREATE TABLE SQL، متبوعة عبارات INSERT INTO SQL لإضافة صفوف إلى الجدول.
تستورد التعليمة البرمجية ثلاث حزم: sql package، وgo sql driver for mysql كمحرك للاتصال بخادم PostgreSQL، وحزمة fmt للمدخلات والمخرجات المطبوعة على سطر الأوامر.
تستدعي التعليمات البرمجية أسلوب sql. افتح () للاتصال بقاعدة بيانات قاعدة بيانات Azure لـ PostgreSQL، وتحقق من الاتصال باستخدام الأسلوب db. Ping(). يُستخدم مقبض قاعدة البيانات طوال الوقت، مع الاحتفاظ بمجموعة الاتصال لخادم قاعدة البيانات. التعليمة البرمجية تستدعي طريقة Exec() عدة مرات لتشغيل عدة أوامر SQL. في كل مرة يتحقق أسلوب checkError() المخصص مما إذا حدث خطأ ويذعر للخروج إذا حدث خطأ.
استبدل المعلمات HOST وDATABASE وUSER وPASSWORD بالقيم الخاصة بك.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Drop previous table of same name if one exists.
_, err = db.Exec("DROP TABLE IF EXISTS inventory;")
checkError(err)
fmt.Println("Finished dropping table (if existed)")
// Create table.
_, err = db.Exec("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
checkError(err)
fmt.Println("Finished creating table")
// Insert some data into table.
sql_statement := "INSERT INTO inventory (name, quantity) VALUES ($1, $2);"
_, err = db.Exec(sql_statement, "banana", 150)
checkError(err)
_, err = db.Exec(sql_statement, "orange", 154)
checkError(err)
_, err = db.Exec(sql_statement, "apple", 100)
checkError(err)
fmt.Println("Inserted 3 rows of data")
}
قراءة البيانات
استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة الـ SQL: SELECT.
تستورد التعليمة البرمجية ثلاث حزم: sql package، وgo sql driver for mysql كمحرك للاتصال بخادم PostgreSQL، وحزمة fmt للمدخلات والمخرجات المطبوعة على سطر الأوامر.
تستدعي التعليمات البرمجية أسلوب sql. افتح () للاتصال بقاعدة بيانات قاعدة بيانات Azure لـ PostgreSQL، وتحقق من الاتصال باستخدام الأسلوب db. Ping(). يُستخدم مقبض قاعدة البيانات طوال الوقت، مع الاحتفاظ بمجموعة الاتصال لخادم قاعدة البيانات. يتم تشغيل استعلام التحديد عن طريق استدعاء الأسلوب db. يتم الاحتفاظ بالاستعلام () والصفوف الناتجة في متغير من صفوف النوع. تقرأ التعليمات البرمجية قيم بيانات العمود في الصف الحالي باستخدام صفوف الأسلوب. المسح () والحلقات فوق الصفوف باستخدام صفوف المكرر. Next() حتى لا توجد صفوف أخرى. تتم طباعة قيم عمود كل صف إلى وحدة التحكم. في كل مرة يتم فيها استخدام أسلوب checkError() مخصص للتحقق مما إذا حدث خطأ والذعر للخروج إذا حدث خطأ.
استبدل المعلمات HOST وDATABASE وUSER وPASSWORD بالقيم الخاصة بك.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Read rows from table.
var id int
var name string
var quantity int
sql_statement := "SELECT * from inventory;"
rows, err := db.Query(sql_statement)
checkError(err)
defer rows.Close()
for rows.Next() {
switch err := rows.Scan(&id, &name, &quantity); err {
case sql.ErrNoRows:
fmt.Println("No rows were returned")
case nil:
fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)
default:
checkError(err)
}
}
}
تحديث البيانات
استخدم التعليمات البرمجية التالية للاتصال وتحديث البيانات باستخدام عبارة UPDATE SQL.
تستورد التعليمة البرمجية ثلاث حزم: sql package، وgo sql driver for mysql كمحرك للاتصال بخادم Postgres، وحزمة fmt للمدخلات والمخرجات المطبوعة على سطر الأوامر.
تستدعي التعليمات البرمجية أسلوب sql. افتح () للاتصال بقاعدة بيانات قاعدة بيانات Azure لـ PostgreSQL، وتحقق من الاتصال باستخدام الأسلوب db. Ping(). يُستخدم مقبض قاعدة البيانات طوال الوقت، مع الاحتفاظ بمجموعة الاتصال لخادم قاعدة البيانات. تقوم التعليمات البرمجية باستدعاء الأسلوب Exec() لتشغيل عبارة SQL تحديث الجدول. يُستخدم أسلوب checkError() مخصص للتحقق مما إذا حدث خطأ ثم الذعر للإنهاء إذا حدث خطأ.
استبدل المعلمات HOST وDATABASE وUSER وPASSWORD بالقيم الخاصة بك.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Modify some data in table.
sql_statement := "UPDATE inventory SET quantity = $2 WHERE name = $1;"
_, err = db.Exec(sql_statement, "banana", 200)
checkError(err)
fmt.Println("Updated 1 row of data")
}
حذف البيانات
استخدم التعليمات البرمجية التالية للاتصال بقاعدة البيانات وحذف البيانات باستخدام عبارة DELETE SQL.
تستورد التعليمة البرمجية ثلاث حزم: sql package، وgo sql driver for mysql كمحرك للاتصال بخادم Postgres، وحزمة fmt للمدخلات والمخرجات المطبوعة على سطر الأوامر.
تستدعي التعليمات البرمجية أسلوب sql. افتح () للاتصال قاعدة بيانات Azure لـ PostgreSQL، وتحقق من الاتصال باستخدام الأسلوب db. Ping(). يحتوي مقبض قاعدة البيانات على تجمع الاتصال لخادم قاعدة البيانات ويتم استخدامه طوال الوقت. تقوم التعليمات البرمجية باستدعاء الأسلوب Exec() لتشغيل عبارة SQL والتي تحذف صفًّا من الجدول. يتحقق الأسلوب المخصص checkError() من حدوث خطأ ويخرج إذا حدث خطأ.
استبدل المعلمات HOST وDATABASE وUSER وPASSWORD بالقيم الخاصة بك.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Delete some data from table.
sql_statement := "DELETE FROM inventory WHERE name = $1;"
_, err = db.Exec(sql_statement, "orange")
checkError(err)
fmt.Println("Deleted 1 row of data")
}
تنظيف الموارد
لتنظيف كافة الموارد المستخدمة أثناء هذا التشغيل السريع، احذف مجموعة الموارد باستخدام الأمر التالي:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
المحتوى ذو الصلة
- إدارة قاعدة بيانات Azure ل PostgreSQL باستخدام مدخل Microsoft Azure.
- التشغيل السريع: استخدم Python لتوصيل البيانات والاستعلام عنها في قاعدة بيانات Azure ل PostgreSQL.
- التشغيل السريع: استخدم Java لتوصيل البيانات والاستعلام عنها من قاعدة بيانات Azure ل PostgreSQL.
- التشغيل السريع: استخدم .NET (C#) لتوصيل البيانات والاستعلام عنها من قاعدة بيانات Azure ل PostgreSQL.
- التشغيل السريع: استخدم PHP لتوصيل البيانات والاستعلام عنها من قاعدة بيانات Azure ل PostgreSQL.
- التشغيل السريع: استخدم Azure CLI لتوصيل البيانات والاستعلام عنها من قاعدة بيانات Azure ل PostgreSQL.
- التشغيل السريع: استيراد البيانات من قاعدة بيانات Azure ل PostgreSQL في Power BI.