Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu se pomocí Python připojíte k instanci Azure HorizonDB. Příkazy SQL pak použijete k dotazování, vkládání, aktualizaci a odstraňování dat v databázi z platforem macOS, Ubuntu Linux a Windows.
Kroky v tomto článku zahrnují ověřování PostgreSQL.
Ověřování PostgreSQL používá účty uložené v PostgreSQL a potřebujete spravovat obměnu hesel sami.
Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Python, ale začínáte pracovat s Azure HorizonDB.
Předpoklady
- Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
- Cluster databáze Azure HorizonDB. Pokud chcete vytvořit cluster Azure HorizonDB, přečtěte si Vytvoření clusteru Azure HorizonDB.
- Python 3.8+.
- Nejnovější instalační balíček pro pip.
Přidejte pravidla brány firewall pro klientskou pracovní stanici
- Pokud jste vytvořili cluster Azure HorizonDB s přístupem Public (povolené IP adresy) , můžete místní IP adresu přidat do seznamu pravidel brány firewall v clusteru. Projděte si Networking v Azure HorizonDB (Preview).
Příprava vývojového prostředí
Přejděte do složky, ve které chcete spustit kód, a vytvořte a aktivujte virtuální prostředí. Virtuální prostředí je samostatný adresář pro konkrétní verzi Pythonu a další balíčky potřebné pro danou aplikaci.
Spuštěním následujících příkazů vytvořte a aktivujte virtuální prostředí:
py -3 -m venv .venv
.venv\Scripts\activate
Instalace knihoven Pythonu
Nainstalujte knihovny Pythonu potřebné ke spuštění příkladů kódu.
Nainstalujte modul psycopg, který umožňuje připojení k databázi PostgreSQL a dotazování na ji.
# Recommended: install the binary wheel that bundles a compatible libpq wrapper (Windows/macOS)
python -m pip install "psycopg[binary]"
# Linux alternative (if you prefer building against system libpq):
sudo apt-get update
sudo apt-get install -y libpq-dev build-essential python3-dev
python -m pip install psycopg
Přidání ověřovacího kódu
V této části přidáte do pracovního adresáře ověřovací kód a provedete všechny další kroky potřebné k ověřování a autorizaci v instanci clusteru.
Před přidáním ověřovacího kódu se ujistěte, že jsou nainstalované požadované balíčky pro každý příklad.
Požadované balíčky (příklady v tomto článku):
- Příklad hesla:
psycopg(doporučeno:python -m pip install "psycopg[binary]")
Volitelné: vytvořte requirements.txt s těmito položkami a nainstalujte pomocí python -m pip install -r requirements.txt pro reprodukovatelné instalace.
Zkopírujte následující kód do editoru a uložte ho do souboru s názvem get_conn.py.
import urllib.parse import os def get_connection_uri(): # Read URI parameters from the environment dbhost = os.environ['DBHOST'] dbname = os.environ['DBNAME'] dbuser = urllib.parse.quote(os.environ['DBUSER']) password = os.environ['DBPASSWORD'] sslmode = os.environ['SSLMODE'] db_uri = f"host={dbhost} dbname={dbname} user={dbuser} password={password} sslmode={sslmode}" # Construct connection URI return db_uriZískejte informace o připojení k databázi.
Použití portálu Azure:
V nabídce vlevo na portálu Azure vyberte Všechny prostředky a vyhledejte cluster, který jste vytvořili.
Vyberte název clusteru.
V nabídce zdrojů vyberte Přehled. Najeďte myší na hodnotu zobrazenou jako primární koncový bod (čtení/zápis) a vyberte tlačítko Kopírovat do schránky .
Pokud zapomenete heslo pro přihlášení správce, můžete ho resetovat pomocí tlačítka Resetovat heslo .
Nastavení proměnných prostředí pro elementy URI spojení:
set DBHOST=<cluster-name> set DBNAME=<database-name> set DBUSER=<username> set DBPASSWORD=<password> set SSLMODE=require
Jak spustit příklady Pythonu
Pro každý příklad kódu v tomto článku:
Vytvořte nový soubor v textovém editoru.
Přidejte do souboru příklad kódu.
Uložte soubor do složky projektu s příponou .py , například postgres-insert.py. V systému Windows se ujistěte, že při uložení souboru je vybrané kódování UTF-8.
Ve složce projektu zadejte
pythonnásledovaný názvem souboru, napříkladpython postgres-insert.py.
Vytvoření tabulky a vložení dat
Následující příklad kódu se připojí ke clusteru Azure HorizonDB pomocí funkce psycopg.connect a načte data pomocí příkazu SQL INSERT. Funkce cursor.execute spustí dotaz SQL na databázi.
import psycopg
from get_conn import get_connection_uri
conn_string = get_connection_uri()
conn = psycopg.connect(conn_string)
print("Connection established")
cursor = conn.cursor()
# Drop previous table of same name if one exists
cursor.execute("DROP TABLE IF EXISTS inventory;")
print("Finished dropping table (if existed)")
# Create a table
cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
print("Finished creating table")
# Insert some data into the table
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
print("Inserted 3 rows of data")
# Clean up
conn.commit()
cursor.close()
conn.close()
Když se kód úspěšně spustí, vytvoří následující výstup:
Connection established
Finished dropping table (if existed)
Finished creating table
Inserted 3 rows of data
Čtení dat
Následující příklad kódu se připojí ke clusteru Azure HorizonDB a používá cursor.execute s příkazem SQL SELECT ke čtení dat. Tato funkce přijme dotaz a vrátí sadu výsledků pro iteraci pomocí cursor.fetchall().
import psycopg
from get_conn import get_connection_uri
conn_string = get_connection_uri()
conn = psycopg.connect(conn_string)
print("Connection established")
cursor = conn.cursor()
# Fetch all rows from table
cursor.execute("SELECT * FROM inventory;")
rows = cursor.fetchall()
# Print all rows
for row in rows:
print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))
# Cleanup
conn.commit()
cursor.close()
conn.close()
Když se kód úspěšně spustí, vytvoří následující výstup:
Connection established
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Aktualizace dat
Následující příklad kódu se připojí ke clusteru Azure HorizonDB a použije cursor.execute s příkazem SQL UPDATE k aktualizaci dat.
import psycopg
from get_conn import get_connection_uri
conn_string = get_connection_uri()
conn = psycopg.connect(conn_string)
print("Connection established")
cursor = conn.cursor()
# Update a data row in the table
cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
print("Updated 1 row of data")
# Cleanup
conn.commit()
cursor.close()
conn.close()
Odstranit data
Následující příklad kódu se připojí ke clusteru Azure HorizonDB a pomocí příkazu SQL DELETE odstraní položku inventáře, kterou jste předtím vložili.
import psycopg
from get_conn import get_connection_uri
conn_string = get_connection_uri()
conn = psycopg.connect(conn_string)
print("Connection established")
cursor = conn.cursor()
# Delete data row from table
cursor.execute("DELETE FROM inventory WHERE name = %s;", ("orange",))
print("Deleted 1 row of data")
# Cleanup
conn.commit()
cursor.close()
conn.close()