Conéctese a LindormTable mediante la biblioteca phoenixdb y ejecute operaciones SQL desde su aplicación de Python.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Python 3.7 o posterior instalado
La dirección IP de su cliente agregada a la Lindorm whitelist
Limitaciones
Python DB-API no admite conexiones a LindormTable en una instancia serverless de Lindorm.
Instalación de phoenixdb
pip install phoenixdb==1.2.0
Conexión a LindormTable
Paso 1: Establecer los parámetros de conexión
connect_kw_args = {
'lindorm_user': '<userName>',
'lindorm_password': '<userPassword>',
'database': '<database>'
}
| Parámetro | Descripción |
|---|---|
lindorm_user |
Nombre de usuario y contraseña para conectarse a la instancia de Lindorm. Si olvidó la contraseña, puede change the password en el sistema de gestión de clústeres de LindormTable. |
lindorm_password |
|
database |
Nombre de la base de datos a la que desea conectarse. Si se omite, la conexión utiliza la base de datos predeterminada. |
Paso 2: Abrir la conexión
database_url = '<lindorm_sql_url>'
connection = phoenixdb.connect(database_url, autocommit=True, **connect_kw_args)
|
Parámetro |
Descripción |
|
|
Endpoint SQL de LindormTable. Para obtener el endpoint, consulte View endpoints. Utilice el endpoint de red privada virtual (VPC) si su cliente se ejecuta en una instancia de Elastic Compute Service (ECS) dentro de la misma VPC que su instancia de Lindorm; de lo contrario, habilite y utilice el endpoint público. Elimine cualquier cadena que aparezca antes de |
|
|
Debe establecerse en |
|
|
Parámetros de conexión definidos en el Paso 1. |
Ejecución de operaciones DDL y DML
A continuación, los ejemplos utilizan un cursor para ejecutar operaciones DDL y DML en LindormTable. Cada operación se presenta como un fragmento independiente para que copie únicamente lo que necesite.
Crear una tabla
with connection.cursor() as statement:
sql = "CREATE TABLE IF NOT EXISTS test_python (c1 INTEGER, c2 INTEGER, PRIMARY KEY (c1))"
statement.execute(sql)
Insertar una sola fila
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (1, 1)"
statement.execute(sql)
Insertar varias filas
Utilice executemany() para insertar varias filas en una sola llamada.
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (?, ?)"
statement.executemany(sql, [(2, 2), (3, 3)])
Actualizar una fila
with connection.cursor() as statement:
sql = "UPSERT INTO test_python (c1, c2) VALUES (1, 10)"
statement.execute(sql)
Eliminar filas
with connection.cursor() as statement:
sql = "DELETE FROM test_python WHERE c1 = 2"
statement.execute(sql)
Consultar datos
fetchall() devuelve una lista de tuplas, una por cada fila.
with connection.cursor() as statement:
statement.execute("SELECT * FROM test_python")
rows = statement.fetchall()
for row in rows:
print(row) # e.g. (1, 10)
Eliminar una tabla
Si su versión de LindormTable es posterior a la 2.2.16 y anterior a la 2.4.1, ejecute OFFLINE TABLE antes de eliminar la tabla.
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")
Cerrar la conexión
connection.close()
Para consultar el código de ejemplo completo, consulte el ejemplo de Python en GitHub .
Pasos siguientes
-
Para obtener más información, consulte la referencia de SQL para LindormTable.