Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart maakt u verbinding met een Azure HorizonDB-exemplaar met behulp van Python. Vervolgens gebruikt u SQL-instructies om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen van macOS-, Ubuntu Linux- en Windows-platforms.
De stappen in dit artikel omvatten PostgreSQL-verificatie.
PostgreSQL-verificatie maakt gebruik van accounts die zijn opgeslagen in PostgreSQL en u moet de rotatie van de wachtwoorden zelf beheren.
In dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met behulp van Python, maar u bent nog niet bekend met het werken met Azure HorizonDB.
Prerequisites
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Azure HorizonDB-cluster. Als u Azure HorizonDB-cluster wilt maken, raadpleegt u Maak een Azure HorizonDB-cluster.
- Python 3,8+.
- Nieuwste PIP-pakketinstallatieprogramma.
Firewallregels toevoegen voor uw clientwerkstation
- Als u uw Azure HorizonDB-cluster hebt gemaakt met Public access (toegestane IP-adressen), kunt u uw lokale IP-adres toevoegen aan de lijst met firewallregels in uw cluster. Raadpleeg Networking in Azure HorizonDB (preview).
Uw ontwikkelomgeving voorbereiden
Ga naar een map waarin u de code wilt uitvoeren en maak en activeer een virtuele omgeving. Een virtuele omgeving is een zelfstandige map voor een bepaalde versie van Python plus de andere pakketten die nodig zijn voor die toepassing.
Voer de volgende opdrachten uit om een virtuele omgeving te maken en te activeren:
py -3 -m venv .venv
.venv\Scripts\activate
De Python-bibliotheken installeren
Installeer de Python-bibliotheken die nodig zijn om de codevoorbeelden uit te voeren.
Installeer de psycopg-module , waarmee u verbinding kunt maken met en query's kunt uitvoeren op een PostgreSQL-database.
# 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
Verificatiecode toevoegen
In deze sectie voegt u verificatiecode toe aan uw werkmap en voert u eventuele extra stappen uit die vereist zijn voor verificatie en autorisatie bij uw clusterexemplaren.
Voordat u de verificatiecode toevoegt, moet u ervoor zorgen dat de vereiste pakketten voor elk voorbeeld zijn geïnstalleerd.
Vereiste pakketten (voorbeelden in dit artikel):
- Wachtwoordvoorbeeld:
psycopg(aanbevolen:python -m pip install "psycopg[binary]")
Optioneel: maak een requirements.txt met deze vermeldingen en installeer met python -m pip install -r requirements.txt voor reproduceerbare installaties.
Kopieer de volgende code naar een editor en sla deze op in een bestand met de naam 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_uriGegevens over databaseverbindingen ophalen.
Gebruik de Azure-portal:
Selecteer in het linkermenu in Azure portal Alle resources en zoek vervolgens naar het cluster dat u hebt gemaakt.
Selecteer de clusternaam.
Selecteer Overzicht in het resourcemenu. Beweeg de muisaanwijzer over de waarde die wordt weergegeven als primair eindpunt (lezen/schrijven) en selecteer de knop Kopiëren naar klembord .
Als u het wachtwoord van de aanmelding van de beheerder bent vergeten, kunt u het opnieuw instellen met behulp van de knop Wachtwoord opnieuw instellen.
Stel omgevingsvariabelen in voor de verbindings-URI-elementen:
set DBHOST=<cluster-name> set DBNAME=<database-name> set DBUSER=<username> set DBPASSWORD=<password> set SSLMODE=require
De Python-voorbeelden uitvoeren
Voor elk codevoorbeeld in dit artikel:
Maak een nieuw bestand in een teksteditor.
Voeg het codevoorbeeld toe aan het bestand.
Sla het bestand op in uw projectmap met een .py-extensie, zoals postgres-insert.py. In Windows moet u ervoor zorgen dat UTF-8-codering is geselecteerd wanneer u het bestand opslaat.
In je projectmap, typ
pythongevolgd door de bestandsnaam, bijvoorbeeldpython postgres-insert.py.
Een tabel maken en gegevens invoegen
Het volgende codevoorbeeld maakt verbinding met uw Azure HorizonDB-cluster met behulp van de functie psycopg.connect en laadt gegevens met een SQL INSERT-instructie. De cursor.execute functie voert de SQL-query uit op de database.
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()
Wanneer de code wordt uitgevoerd, wordt de volgende uitvoer gegenereerd:
Connection established
Finished dropping table (if existed)
Finished creating table
Inserted 3 rows of data
Gegevens lezen
In het volgende codevoorbeeld wordt verbinding gemaakt met uw Azure HorizonDB-cluster en wordt cursor.execute gebruikt met de INSTRUCTIE SQL SELECT om gegevens te lezen. Deze functie accepteert een query en retourneert een resultatenset die met behulp van cursor.fetchall() kan worden herhaald.
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()
Wanneer de code wordt uitgevoerd, wordt de volgende uitvoer gegenereerd:
Connection established
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Gegevens bijwerken
Het volgende codevoorbeeld maakt verbinding met uw Azure HorizonDB-cluster en gebruikt cursor.execute met de SQL UPDATE-instructie om gegevens bij te werken.
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()
Gegevens verwijderen
Het volgende codevoorbeeld maakt verbinding met uw Azure HorizonDB-cluster en gebruikt cursor.execute met de SQL DELETE-instructie om een inventarisitem te verwijderen dat u eerder hebt ingevoegd.
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()