Conecte-se ao LindormTable com a biblioteca phoenixdb e execute operações SQL na sua aplicação Python.
Pré-requisitos
Antes de começar, verifique se você tem:
Python 3.7 ou posterior instalado
Endereço IP do cliente adicionado à lista de permissões do Lindorm
Limitações
A Python DB-API não permite conexão com o LindormTable em instâncias Lindorm Serverless.
Instale o phoenixdb
pip install phoenixdb==1.2.0
Conecte-se ao LindormTable
Etapa 1: Defina os parâmetros de conexão
connect_kw_args = {
'lindorm_user': '<userName>',
'lindorm_password': '<userPassword>',
'database': '<database>'
}
| Parâmetro | Descrição |
|---|---|
lindorm_user |
Nome de usuário e senha para conexão à instância Lindorm. Se esqueceu a senha, altere-a no sistema de gerenciamento de cluster do LindormTable. |
lindorm_password |
|
database |
Nome do banco de dados de destino. Se omitido, o sistema usa o banco de dados padrão. |
Etapa 2: Abra a conexão
database_url = '<lindorm_sql_url>'
connection = phoenixdb.connect(database_url, autocommit=True, **connect_kw_args)
|
Parâmetro |
Descrição |
|
|
Endpoint SQL do LindormTable. Para localizá-lo, consulte Visualize endpoints. Utilize o endpoint de virtual private network (VPC) se o cliente estiver em uma instância Elastic Compute Service (ECS) na mesma VPC da instância Lindorm; caso contrário, ative e use o endpoint público. Remova qualquer texto anterior a |
|
|
Defina como |
|
|
Parâmetros de conexão definidos na Etapa 1. |
Execute operações DDL e DML
Os exemplos abaixo usam um cursor para executar operações DDL e DML no LindormTable. Cada operação aparece como um trecho independente para que você copie apenas o necessário.
Crie uma tabela
with connection.cursor() as statement:
sql = "CREATE TABLE IF NOT EXISTS test_python (c1 INTEGER, c2 INTEGER, PRIMARY KEY (c1))"
statement.execute(sql)
Insira uma única linha
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (1, 1)"
statement.execute(sql)
Insira várias linhas
Use executemany() para inserir múltiplas linhas em uma única chamada.
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (?, ?)"
statement.executemany(sql, [(2, 2), (3, 3)])
Atualize uma linha
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (1, 10)"
statement.execute(sql)
Exclua linhas
with connection.cursor() as statement:
sql = "DELETE FROM test_python WHERE c1 = 2"
statement.execute(sql)
Consulte dados
fetchall() retorna uma lista de tuplas, uma por linha.
with connection.cursor() as statement:
statement.execute("SELECT * FROM test_python")
rows = statement.fetchall()
for row in rows:
print(row) # e.g. (1, 10)
Exclua uma tabela
Se a versão do LindormTable for posterior a 2.2.16 e anterior a 2.4.1, execute OFFLINE TABLE antes de excluir a tabela.
with connection.cursor() as statement:
# Required only for LindormTable versions > 2.2.16 and < 2.4.1
statement.execute("OFFLINE TABLE test_python")
statement.execute("DROP TABLE IF EXISTS test_python")
Feche a conexão
connection.close()
Para obter o código de exemplo completo, consulte o exemplo em Python no GitHub .
Próximos passos
-
Para mais informações, consulte a referência SQL do LindormTable.