Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você se conecta a uma instância do Azure HorizonDB usando Python. Em seguida, usará instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados de plataformas macOS, Ubuntu Linux e Windows.
As etapas neste artigo incluem a autenticação postgreSQL.
A autenticação PostgreSQL usa contas armazenadas no PostgreSQL e você precisa gerenciar a rotação das senhas por conta própria.
Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando Python, mas é novo trabalhar com Azure HorizonDB.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um cluster do Azure HorizonDB. Para criar Azure cluster HorizonDB, consulte Criar um cluster Azure HorizonDB.
- Python 3.8 ou superior.
- Instalador do pacote pip mais recente.
Adicionar regras de firewall para a estação de trabalho do cliente
- Se você criou seu cluster Azure HorizonDB com acesso Public (endereços IP permitidos), poderá adicionar seu endereço IP local à lista de regras de firewall em seu cluster. Consulte Networking no Azure HorizonDB (versão prévia).
Preparar seu ambiente de desenvolvimento
Mude para uma pasta em que você deseja executar o código e crie e ative um ambiente virtual. Um ambiente virtual é um diretório independente para uma versão específica do Python, além dos outros pacotes necessários para esse aplicativo.
Execute os seguintes comandos para criar e ativar um ambiente virtual:
py -3 -m venv .venv
.venv\Scripts\activate
Instalar as bibliotecas do Python
Instale as bibliotecas do Python necessárias para executar os exemplos de código.
Instale o módulo psycopg2, que permite consultar um banco de dados PostgreSQL e conectar-se a ele.
# 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
Adicionar código de autenticação
Nesta seção, você adicionará o código de autenticação ao diretório de trabalho e executará as etapas adicionais necessárias para autenticação e autorização com sua instância de cluster.
Antes de adicionar o código de autenticação, verifique se os pacotes necessários para cada exemplo estão instalados.
Pacotes necessários (exemplos neste artigo):
- Exemplo com senha:
psycopg(recomendado:python -m pip install "psycopg[binary]")
Opcional: crie um requirements.txt com essas entradas e instale-o com python -m pip install -r requirements.txt para instalações reproduzíveis.
Copie o código a seguir em um editor e salve-o em um arquivo chamado 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_uriObter informações da conexão de banco de dados.
Usando o portal do Azure:
No menu à esquerda no portal Azure, selecione Todos recursos e pesquise o cluster que você criou.
Selecione o nome do cluster.
No menu de recursos, selecione Visão geral. Focalize o mouse sobre o valor mostrado como Ponto de extremidade primário (leitura/gravação) e selecione o botão Copiar para área de transferência.
Se esquecer a senha do login de administrador, você poderá redefini-la usando o botão Redefinir senha.
Defina variáveis de ambiente para os elementos da URI de conexão:
set DBHOST=<cluster-name> set DBNAME=<database-name> set DBUSER=<username> set DBPASSWORD=<password> set SSLMODE=require
Como executar os exemplos de Python
Para cada exemplo de código neste artigo:
Crie um arquivo em um editor de texto.
Adicione o exemplo de código ao arquivo.
Salve o arquivo na pasta do seu projeto com uma extensão .py, como postgres-insert.py. Para Windows, verifique se a codificação UTF-8 está selecionada quando você salvar o arquivo.
No tipo
pythonda pasta do projeto seguido pelo nome do arquivo, por exemplopython postgres-insert.py.
Criar uma tabela e inserir dados
O exemplo de código a seguir se conecta ao cluster Azure HorizonDB usando a função psycopg.connect e carrega dados com uma instrução SQL INSERT. A função cursor.execute executa a consulta SQL no banco de dados.
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()
Quando o código é executado com êxito, ele produz a seguinte saída:
Connection established
Finished dropping table (if existed)
Finished creating table
Inserted 3 rows of data
Ler dados
O exemplo de código a seguir conecta-se ao cluster Azure HorizonDB e usa cursor.execute com a instrução SQL SELECT para ler dados. Essa função aceita uma consulta e retorna um conjunto de resultados a ser iterado usando 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()
Quando o código é executado com êxito, ele produz a seguinte saída:
Connection established
Data row = (1, banana, 150)
Data row = (2, orange, 154)
Data row = (3, apple, 100)
Atualizar dados
O exemplo de código a seguir conecta-se ao cluster Azure HorizonDB e usa cursor.execute com a instrução SQL UPDATE para atualizar dados.
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()
Excluir dados
O exemplo de código a seguir conecta-se ao cluster Azure HorizonDB e usa cursor.execute com a instrução SQL DELETE para excluir um item de inventário inserido 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()