Rövid útmutató: Adatok csatlakoztatása és lekérdezése a Go nyelv használatával az Azure Database for PostgreSQL-ben – rugalmas kiszolgáló
A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló
Ez a rövid útmutató azt ismerteti, hogyan lehet csatlakozni a PostgreSQL-hez készült Azure-adatbázishoz Go nyelven írt kóddal (golang). Bemutatjuk, hogy az SQL-utasítások használatával hogyan kérdezhetők le, illeszthetők be, frissíthetők és törölhetők az adatok az adatbázisban. A cikk feltételezi, hogy Ön ismeri a Go-t használó fejlesztéseket, de még járatlan a PostgreSQL-hez készült Azure-adatbázis használatában.
Előfeltételek
Ez a rövid útmutató kiindulási pontként használja az Azure Database for PostgreSQL – Rugalmas kiszolgáló létrehozása példányban létrehozott erőforrásokat.
Fontos
Javasoljuk, hogy ehhez a rövid útmutatóhoz nyilvános hozzáféréssel (engedélyezett IP-címekkel) rendelkező kiszolgálót használjon. Ha a rövid útmutató végrehajtásához engedélyezve van egy privát hozzáférésű kiszolgáló (VNet-integráció) használata, további, nem érintett lépésekre is szükség lehet.
Győződjön meg arról, hogy a kiszolgáló tűzfalszabályai az Azure Portalon vagy az Azure CLI-vel lettek hozzáadva.
A Go és a pq-összekötő telepítése
Telepítse a Go-t és a Pure Go Postgres illesztőprogramot (pq) a saját számítógépére. Kövesse az egyes platformoknak megfelelő lépéseket:
Töltse le és telepítse a Microsoft Windowshoz készült Go-t a telepítési utasítások szerint.
Nyissa meg a parancssort a Start menüből.
Hozzon létre egy mappát a projekt számára (például
mkdir %USERPROFILE%\go\src\postgresqlgo
).Nyissa meg a projektmappát (például
cd %USERPROFILE%\go\src\postgresqlgo
).Úgy állítsa be a GOPATH környezeti változóját, hogy a forráskód könyvtárára mutasson.
set GOPATH=%USERPROFILE%\go
.Futtassa a go mod init parancsot egy modul létrehozásához az aktuális könyvtárban. Például:
go mod init postgresqlgo
- A
<module_path>
paraméter általában egy GitHub-adattár helye – példáulgithub.com/<your_github_account_name>/<directory>
. - Amikor tesztként hoz létre parancssori alkalmazást, és nem teszi közzé az alkalmazást,
<module_path>
nem kell tényleges helyre hivatkoznia. Például:postgresqlgo
.
- A
Telepítse a Pure Go Postgres illesztőt (pq) a
go get github.com/lib/pq
parancs futtatásával.Összefoglalva, telepítse a Go-t, majd futtassa ezeket a parancsokat a parancssorban:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Kapcsolatadatok lekérése
Kérje le a PostgreSQL-hez készült Azure-adatbázishoz való csatlakozáshoz szükséges kapcsolatadatokat. Szüksége lesz a teljes kiszolgálónévre és a bejelentkezési hitelesítő adatokra.
- Jelentkezzen be az Azure Portalra.
- Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget, majd keresse meg a létrehozott kiszolgálót (például a mydemoservert).
- Válassza ki a kiszolgálónevet.
- A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni.
Go kód felépítése és futtatása
- Golang-kód írásához használhat egy egyszerű szövegszerkesztőt, ilyen például Microsoft Windows rendszeren a Jegyzettömb, Ubuntu rendszeren a vi vagy a Nano, macOS rendszeren pedig a TextEdit. Ha egy gazdagabb interaktív fejlesztési környezetet (IDE) szeretne használni, próbálja ki a GoLandot a Jetbrains, a Visual Studio Code-ot a Microsoft vagy az Atom segítségével.
- Illessze be a Golang-kódot a következő szakaszokból szövegfájlokba, és mentse a projektmappába a *.go fájlkiterjesztéssel, például a Windows elérési útjával
%USERPROFILE%\go\src\postgresqlgo\createtable.go
vagy a Linux elérési útjával~/go/src/postgresqlgo/createtable.go
. - Keresse meg a
HOST
, aDATABASE
, aUSER
és aPASSWORD
állandót a kódban, és a példaértékeket cserélje le a saját értékeire. Az Azure Database for PostgreSQL-kiszolgálópéldány létrehozásakor létrejön egy postgres nevű adatbázis. Használhatja azt az adatbázist vagy egy másikat, amelyet létrehozott. - Nyissa meg a parancssort vagy a bash rendszerhéjat. Lépjen a projektmappára. Windows rendszer például a következővel:
cd %USERPROFILE%\go\src\postgresqlgo\
. Linuxon:cd ~/go/src/postgresqlgo/
. A fentiekben említettek közül egyes IDE-környezetek hibakeresési és futásidejű képességeket biztosítanak anélkül, hogy rendszerhéjparancsokra lenne szükség. - Futtassa a kódot a
go run createtable.go
parancs beírásával az alkalmazás fordításához és futtatásához. - Vagy a kód natív alkalmazásba való beépítéséhez írja be a
go build createtable.go
parancsot, majd indítsa el acreatetable.exe
fájlt az alkalmazás futtatásához.
Csatlakozás és tábla létrehozása
A következő kód használatával csatlakozhat, és létrehozhat egy táblát a CREATE TABLE SQL-utasítással, majd az INSERT INTO SQL-utasításokkal sorokat adhat hozzá a táblához.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a PostgreSQL-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód többször is meghívja az Exec() metódust, hogy különböző SQL-parancsokat futtasson. A rendszer minden alkalommal egyéni checkError() metódust hív meg, hogy ellenőrizze a hibákat, és hiba esetén kilépjen.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
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")
}
Adatok beolvasása
Az alábbi kód használatával csatlakozhat és végezheti el az adatok olvasását SELECT SQL-utasítás segítségével.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a PostgreSQL-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A select lekérdezést a db.Query() metódus meghívásával lehet futtatni, és az így kapott sorokat a rendszer egy rows (sorok) típusú változóban tárolja. A kód beolvassa az aktuális sorban található oszlopok adatértékeit a rows.Scan() metódussal, majd a rows.Next() iterátor használatával ismétlődően fut a sorokon, amíg azok el nem fogynak. Minden sor oszlopértéke ki lesz nyomtatva a konzolra. Minden alkalommal, amikor egy egyéni checkError() metódussal ellenőrzi, hogy történt-e hiba, és pánikba esik, hogy hiba történt-e.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
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)
}
}
}
Adatok frissítése
A következő kód használatával csatlakozhat és frissítheti az adatokat az UPDATE SQL-utasítással.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a Postgres-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód meghívja az Exec() metódust, hogy futtassa a táblát frissítő SQL-utasítást. A rendszer egyéni checkError() metódussal ellenőrzi a hibákat, és hiba esetén kilép.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
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")
}
Adatok törlése
Az alábbi kód használatával csatlakozhat és végezheti el az adatok törlését egy DELETE SQL-utasítás segítségével.
A kód három csomagot importál, az sql package és a pq package csomagot illesztőprogramként a Postgres-kiszolgálóval való kommunikációhoz, illetve az fmt package csomagot a nyomtatott bemenetekhez és kimenetekhez a parancssoron.
A kód meghívja az sql.Open() metódust az Azure Database for PostgreSQL szolgáltatáshoz való csatlakozáshoz, majd a db.Ping() metódussal ellenőrzi a kapcsolatot. A rendszer a folyamat során adatbázis-leírót használ, amely az adatbázis-kiszolgáló kapcsolatkészletét tárolja. A kód meghívja az Exec() metódust, hogy futtassa a táblából egy sort törlő SQL-utasítást. A rendszer egyéni checkError() metódussal ellenőrzi a hibákat, és hiba esetén kilép.
Cserélje le a HOST
, DATABASE
, USER
és PASSWORD
paramétereket a saját értékeire.
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 erőforrások eltávolítása
A rövid útmutató során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Kapcsolódó tartalom
- Rugalmas Azure Database for PostgreSQL-kiszolgáló kezelése.
- Rövid útmutató: A Python használatával csatlakozhat és lekérdezhet adatokat a rugalmas Azure Database for PostgreSQL-kiszolgáló egy példányából.
- Rövid útmutató: A Java használatával csatlakozhat és lekérdezhet adatokat a rugalmas Azure Database for PostgreSQL-kiszolgáló egy példányából.
- Rövid útmutató: A .NET (C#) használatával csatlakozhat és lekérdezhet adatokat a rugalmas Azure Database for PostgreSQL-kiszolgáló egy példányából.
- Rövid útmutató: A PHP használatával csatlakozhat és lekérdezhet adatokat a rugalmas Azure Database for PostgreSQL-kiszolgáló egy példányából.
- Rövid útmutató: Az Azure CLI használatával csatlakozhat és lekérdezhet adatokat a rugalmas Azure Database for PostgreSQL-kiszolgáló egy példányából.
- Rövid útmutató: Adatok importálása az Azure Database for PostgreSQL-ből – Rugalmas kiszolgáló a Power BI-ban.