Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku Szybki start połączysz się z wystąpieniem usługi Azure HorizonDB za pomocą języka Python. Następnie użyjesz instrukcji SQL do wykonywania zapytań, wstawiania, aktualizowania i usuwania danych w bazie danych z platform macOS, Ubuntu Linux i Windows.
Kroki opisane w tym artykule obejmują uwierzytelnianie postgreSQL.
Uwierzytelnianie postgreSQL używa kont przechowywanych w usłudze PostgreSQL i musisz samodzielnie zarządzać rotacją haseł.
W tym artykule założono, że wiesz już, jak programować przy użyciu Python, ale dopiero zaczynasz pracę z usługą Azure HorizonDB.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Klaster Azure HorizonDB. Aby utworzyć klaster Azure HorizonDB, zobacz Tworzenie klastra Azure HorizonDB.
- Python 3.8 lub nowszy.
- Najnowszy instalator pakietów pip.
Dodaj reguły zapory dla stacji roboczej klienta
- Jeśli utworzono klaster Azure HorizonDB z Public access (dozwolone adresy IP) możesz dodać lokalny adres IP do listy reguł zapory w klastrze. Zapoznaj się z Networking w Azure HorizonDB (wersja zapoznawcza).
Przygotowywanie środowiska projektowego
Przejdź do folderu, w którym chcesz uruchomić kod, i utwórz i aktywuj środowisko wirtualne. Środowisko wirtualne to samodzielny katalog dla określonej wersji języka Python oraz inne pakiety potrzebne dla tej aplikacji.
Uruchom następujące polecenia, aby utworzyć i aktywować środowisko wirtualne:
py -3 -m venv .venv
.venv\Scripts\activate
Instalowanie bibliotek języka Python
Zainstaluj biblioteki języka Python potrzebne do uruchomienia przykładów kodu.
Zainstaluj moduł psycopg, który umożliwia nawiązywanie połączenia z bazą danych PostgreSQL i wykonywanie zapytań względem nich.
# 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
Dodawanie kodu uwierzytelniania
W tej sekcji dodasz do katalogu roboczego kod odpowiedzialny za uwierzytelnianie oraz wykonasz wszelkie dodatkowe kroki wymagane do uwierzytelniania i autoryzacji w instancji klastra.
Przed dodaniem kodu uwierzytelniania upewnij się, że są zainstalowane wymagane pakiety dla każdego przykładu.
Wymagane pakiety (przykłady w tym artykule):
- Przykład hasła:
psycopg(zalecane:python -m pip install "psycopg[binary]")
Opcjonalnie: utwórz plik requirements.txt z tymi wpisami i zainstaluj za pomocą python -m pip install -r requirements.txt, aby zapewnić powtarzalność instalacji.
Skopiuj następujący kod do edytora i zapisz go w pliku o nazwie 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_uriUzyskaj informacje o połączeniu z bazą danych.
Korzystanie z portalu Azure:
W menu po lewej stronie w portalu Azure wybierz pozycję Wszystkie zasoby, a następnie wyszukaj utworzony klaster.
Wybierz nazwę klastra.
W menu zasobów wybierz pozycję Przegląd. Umieść kursor myszy na wartości wyświetlanej jako Podstawowy punkt końcowy (odczyt/zapis) i wybierz przycisk Kopiuj do schowka .
Jeśli zapomnisz hasło logowania administratora, możesz zresetować je przy użyciu przycisku Resetuj hasło .
Ustaw zmienne środowiskowe dla elementów identyfikatora URI połączenia:
set DBHOST=<cluster-name> set DBNAME=<database-name> set DBUSER=<username> set DBPASSWORD=<password> set SSLMODE=require
Jak uruchomić przykłady języka Python
Dla każdego przykładu kodu w tym artykule:
Utwórz nowy plik w edytorze tekstów.
Dodaj przykładowy kod do pliku.
Zapisz plik w folderze projektu przy użyciu rozszerzenia .py , takiego jak postgres-insert.py. W przypadku systemu Windows upewnij się, że podczas zapisywania pliku wybrano kodowanie UTF-8.
W folderze projektu wpisz
python, a następnie nazwę pliku, na przykładpython postgres-insert.py.
Tworzenie tabeli i wstawianie danych
Poniższy przykład kodu łączy się z klastrem Azure HorizonDB przy użyciu funkcji psycopg.connect i ładuje dane za pomocą instrukcji SQL INSERT. Funkcja cursor.execute wykonuje zapytanie SQL względem bazy danych.
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()
Po pomyślnym uruchomieniu kodu generuje następujące dane wyjściowe:
Connection established
Finished dropping table (if existed)
Finished creating table
Inserted 3 rows of data
Odczyt danych
Poniższy przykład kodu łączy się z klastrem Azure HorizonDB i używa polecenia cursor.execute z instrukcją SQL SELECT w celu odczytu danych. Ta funkcja akceptuje zapytanie i zwraca zestaw wyników w celu iteracji przy użyciu funkcji 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()
Po pomyślnym uruchomieniu kodu generuje następujące dane wyjściowe:
Connection established
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Aktualizowanie danych
Poniższy przykład kodu łączy się z klastrem Azure HorizonDB i używa polecenia cursor.execute z instrukcją SQL UPDATE w celu zaktualizowania danych.
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()
Usuń dane
Poniższy przykład kodu łączy się z klastrem Azure HorizonDB i używa polecenia cursor.execute z instrukcją SQL DELETE, aby usunąć wcześniej wstawiony element spisu.
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()