Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, se conecta a una instancia de Azure HorizonDB mediante Python. Después, va a usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos desde plataformas macOS, Ubuntu Linux y Windows.
Los pasos de este artículo incluyen la autenticación de PostgreSQL.
La autenticación de PostgreSQL usa cuentas almacenadas en PostgreSQL y necesita administrar la rotación de las contraseñas por su cuenta.
En este artículo se da por supuesto que está familiarizado con el desarrollo mediante Python, pero no está familiarizado con Azure HorizonDB.
Prerequisites
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un clúster de Azure HorizonDB. Para crear Azure clúster de HorizonDB, consulte Crear un clúster Azure HorizonDB.
- Python 3.8+.
- Instalador de paquetes pip más reciente.
Adición de reglas de firewall para la estación de trabajo cliente
- Si creó el clúster de Azure HorizonDB con Public access (allowed IP addresses), puede agregar la dirección IP local a la lista de reglas de firewall del clúster. Consulte Networking en Azure HorizonDB (versión preliminar).
Preparación del entorno de desarrollo
Cambie a una carpeta en la que quiera ejecutar el código y cree y active un entorno virtual. Un entorno virtual es un directorio autocontenido para una versión específica de Python, junto con los demás paquetes necesarios para esa aplicación.
Ejecute los comandos siguientes para crear y activar un entorno virtual:
py -3 -m venv .venv
.venv\Scripts\activate
Instalación de las bibliotecas de Python
Instale las bibliotecas de Python necesarias para ejecutar los ejemplos de código.
Instale el módulo psycopg, que permite conectarse a una base de datos de PostgreSQL y consultarla.
# 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
Adición del código de autenticación
En esta sección, agregará código de autenticación al directorio de trabajo y realizará los pasos adicionales necesarios para la autenticación y autorización con la instancia del clúster.
Antes de agregar el código de autenticación, asegúrese de que se instalan los paquetes necesarios para cada ejemplo.
Paquetes necesarios (ejemplos de este artículo):
- Ejemplo de contraseña:
psycopg(recomendado:python -m pip install "psycopg[binary]")
Opcional: cree un archivo requirements.txt con estas entradas e instálelo con python -m pip install -r requirements.txt para instalaciones reproducibles.
Copie el código siguiente en un editor y guárdelo en un archivo llamado 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_uriObtenga la información de conexión de la base de datos.
Mediante Azure Portal:
En el menú izquierdo de Azure portal, seleccione Todos los recursos y busque el clúster que ha creado.
Seleccione el nombre del clúster.
En el menú de recursos, seleccione Información general. Mantenga el mouse sobre el valor que se muestra como Punto de conexión principal (lectura y escritura) y seleccione el botón Copiar en el Portapapeles .
Si olvida la contraseña del inicio de sesión de administrador, puede restablecerla mediante el botón Restablecer contraseña.
Establezca las variables de entorno para los elementos del identificador URI de conexión:
set DBHOST=<cluster-name> set DBNAME=<database-name> set DBUSER=<username> set DBPASSWORD=<password> set SSLMODE=require
Cómo ejecutar los ejemplos de Python
Para cada ejemplo de código de este artículo:
Cree un nuevo archivo en un editor de texto.
Agregue el ejemplo de código al archivo.
Guarde el archivo en la carpeta del proyecto con una extensión .py, como postgres-insert.py. En Windows, asegúrese de que la codificación UTF-8 está seleccionada al guardar el archivo.
En la carpeta del proyecto, escriba
pythonseguido del nombre de archivo, por ejemplo,python postgres-insert.py.
Crear una tabla e insertar datos
El ejemplo de código siguiente se conecta al clúster de Azure HorizonDB mediante la función
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()
Cuando el código se ejecuta correctamente, genera el siguiente resultado:
Connection established
Finished dropping table (if existed)
Finished creating table
Inserted 3 rows of data
Lectura de datos
El siguiente ejemplo de código se conecta a su clúster de Azure HorizonDB y usa cursor.execute con la instrucción SQL SELECT para leer datos. Esta función acepta una consulta y devuelve un conjunto de resultados para iterar mediante 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()
Cuando el código se ejecuta correctamente, genera el siguiente resultado:
Connection established
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Actualizar datos
El siguiente ejemplo de código se conecta a su clúster de Azure HorizonDB y usa cursor.execute con la instrucción SQL UPDATE para actualizar datos.
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()
Eliminar datos
El ejemplo de código siguiente se conecta al clúster de Azure HorizonDB y usa cursor.execute con la instrucción SQL DELETE para eliminar un elemento de inventario que insertó anteriormente.
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()