Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Acceso a Amazon QLDB mediante el intérprete de comandos de QLDB (solo API de datos)
Amazon QLDB proporciona un intérprete de comandos de línea de comandos para la interacción con la API de datos transaccionales. Con el intérprete de comandos QLDB, puede ejecutar instrucciones PartiQL en datos del libro mayor.
La última versión de este intérprete de comandos está escrita en Rust y es de código abierto en el repositorio awslabs/amazon-qldb-shellmain
predeterminada. La versión de Python (v1) también está disponible para su uso en el mismo repositorio de la rama master
.
nota
El intérprete de comandos de Amazon QLDB solo admite la API de datos transaccionales qldb-session
. Esta API se usa solo para ejecutar instrucciones PartiQL en un libro mayor de QLDB.
Para interactuar con las operaciones de la API qldb
de administración mediante una interfaz de línea de comandos, consulte Acceso a Amazon QLDB mediante AWS CLI (solo API de administración).
Esta herramienta no está destinada a incorporarse a una aplicación ni a adoptarse con fines de producción. El objetivo de esta herramienta es permitirle experimentar rápidamente con QLDB y PartiQL.
En las secciones siguientes se describe cómo comenzar a utilizar la sincronización del intérprete de comandos de QLDB.
Temas
Requisitos previos
Antes de empezar a usar el intérprete de comandos de QLDB, debe hacer lo siguiente:
-
Siga las instrucciones de configuración de AWS en Acceso a Amazon QLDB. Estas incluyen las siguientes:
-
Regístrese en AWS.
-
Cree un usuario con los permisos de QLDB adecuados.
-
Conceda acceso programático de desarrollo.
-
-
Configure sus credenciales AWS y su Región de AWS predeterminada. Para obtener instrucciones, consulte Configuración rápida en la Guía del usuario de AWS Command Line Interface.
Para ver una lista completa de las regiones disponibles, consulte Puntos de conexión y cuotas de Amazon QLDB en Referencia general de AWS.
-
Para cualquier libro mayor en el modo de permisos
STANDARD
, deberá crear políticas de IAM que concedan permisos para ejecutar instrucciones PartiQL en las tablas adecuadas. Para obtener información sobre cómo crear estas políticas, consulte Introducción al modo de permisos estándar en Amazon QLDB.
Instalación del intérprete de comandos
Para instalar la versión más reciente del intérprete de comandos de QLDB, consulte el archivo README.md
Para macOS, el intérprete de comandos se integra con el tap de Homebrewaws/tap
. Para instalar el intérprete de comandos en macOS con Homebrew, ejecute los siguientes comandos.
$
xcode-select --install
# Required to use Homebrew$
brew tap aws/tap
# Add AWS as a Homebrew tap$
brew install qldbshell
Configuración
Tras la instalación, el intérprete de comandos carga el archivo de configuración predeterminado que se encuentra en $XDG_CONFIG_HOME/qldbshell/config.ion
durante la inicialización. En Linux y macOS, este archivo suele aparecer como ~/.config/qldbshell/config.ion
. Si dicho archivo no existe, el intérprete de comandos se ejecuta con la configuración predeterminada.
Puede crear un archivo config.ion
manualmente después de la instalación. Este archivo de configuración utiliza el formato de datos de Amazon Ion. A continuación se presenta un ejemplo de un archivo config.ion
.
{ default_ledger: "my-example-ledger" }
Si default_ledger
no está establecido en el archivo de configuración, el parámetro --ledger
es obligatorio para invocar el intérprete de comandos. Para ver una lista completa de opciones de configuración, consulte el archivo README.md
Invocar el intérprete de comandos
Para invocar el intérprete de comandos QLDB en su terminal de línea de comandos para un libro mayor específico, ejecute el siguiente comando. Sustituya my-example-ledger
por el nombre de su libro mayor.
$
qldb --ledger
my-example-ledger
Este comando se conecta a su Región de AWS predeterminado. Para especificar la región de forma explícita, puede ejecutar el comando con el parámetro --region
o --qldb-session-endpoint
, tal y como se describe en la siguiente sección.
Tras invocar una sesión de intérprete de comandos qldb
, puede introducir los siguientes tipos de entrada:
Parámetros de intérprete de comandos
Para obtener una lista completa de los marcadores y opciones disponibles para invocar un intérprete de comandos, ejecute el comando qldb
con el indicador --help
, de la siguiente manera.
$
qldb --help
A continuación se enumeran opciones y marcadores clave del comando qldb
. Puede añadir estos parámetros opcionales para anular Región de AWS, el perfil de credenciales, el punto de conexión, el formato de los resultados y otras opciones de configuración.
Uso
$
qldb [FLAGS]
[OPTIONS]
MARCADORES
-h
,--help
-
Imprime información de ayuda.
-v
,--verbose
-
Configura el nivel de detalle del registro. De forma predeterminada, el intérprete de comandos solo registra los errores. Para aumentar el nivel de detalle, repita este argumento (por ejemplo,
-vv
). El nivel más alto es-vvv
, que corresponde al nivel de detalletrace
. -V
,--version
-
Imprime la información de la versión.
OPTIONS
-l
,--ledger
LEDGER_NAME
-
Nombre del libro mayor al que se va a conectar. Se trata de un parámetro de intérprete de comandos obligatorio si
default_ledger
no está establecido en el archivoconfig.ion
. En este archivo, puede configurar opciones adicionales, como la región. -c
,--config
CONFIG_FILE
-
El archivo en el que puede definir cualquier opción de configuración de intérprete de comandos. Para ver los detalles de formato y una lista completa de opciones de configuración, consulte el archivo README.md
en GitHub. -f
,--format
ion|table
-
El formato de salida de los resultados de su consulta. El valor predeterminado es
ion
. -p
,--profile
PROFILE
-
La ubicación del perfil de credenciales AWS que se utilizará para la autenticación.
Si no se proporciona, el intérprete de comandos utilizará su perfil predeterminado AWS, que se encuentra en
~/.aws/credentials
. -r
,--region
REGION_CODE
-
El código Región de AWS del libro mayor de QLDB al que conectarse. Por ejemplo:
us-east-1
.Si no se proporciona, el intérprete de comandos se conecta a su Región de AWS predeterminada, tal y como se especifica en su perfil AWS.
-s
,--qldb-session-endpoint
QLDB_SESSION_ENDPOINT
-
El punto de conexión de la API
qldb-session
usado para conectarse.Para ver una lista completa de las regiones y puntos de conexión QLDB disponibles, consulte Puntos de conexión y cuotas de Amazon QLDB en Referencia general de AWS.
Referencia de los comandos
Tras invocar una sesión qldb
, el intérprete de comandos admite las siguientes claves y comandos de base de datos:
Claves de intérprete de comandos | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Clave | Descripción de función | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter | Ejecute la instrucción. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Escape+Enter (macOS, Linux) Shift+Enter (Windows) |
Inicia una nueva línea para introducir una instrucción que abarque varias líneas. También puede copiar el texto introducido con varias líneas y pegarlo en el intérprete de comandos. Para obtener instrucciones sobre cómo configurar Option en lugar de Escape como una clave meta en macOS, consulte el sitio de OS X Daily |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ctrl+C | Cancela el comando actual. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ctrl+D | Señala el final del archivo (EOF) y sale del nivel actual del intérprete de comandos. Si no está en una transacción activa, sale del intérprete de comandos. En una transacción activa, anula la transacción. |
Comandos de la base de datos del intérprete de comandos | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Comando | Descripción de función | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
help |
Muestra la información de ayuda. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
begin |
Inicia una transacción. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
start transaction |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
commit |
Confirma la transacción en el diario del libro mayor. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
abort |
Detiene la transacción y rechaza cualquier cambio que haya realizado. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit |
Sale del intérprete de comandos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
quit |
nota
Los comandos del intérprete de comandos de QLDB no distingue ninguno entre mayúsculas y minúsculas.
Ejecutar instrucciones individuales
A excepción de los comandos de la base de datos y los metacomandos del intérprete de comandos que aparecen en README.mdauto-commit
. Este modo es configurable.
En el modo auto-commit
, el intérprete de comandos ejecuta implícitamente cada instrucción en su propia transacción y la confirma automáticamente si no se encuentra ningún error. Esto significa que no tiene que ejecutar start transaction
(ni begin
) y commit
manualmente cada vez que ejecute una instrucción.
Administración de transacciones
Como alternativa, el intérprete de comandos de QLDB le permite controlar manualmente las transacciones. Puede ejecutar varias instrucciones dentro de una transacción de forma interactiva o no interactiva agrupando comandos e instrucciones por lotes de forma secuencial.
Transacciones activas
Para ejecutar una transacción interactiva, realice los siguientes pasos.
-
Para iniciar una transacción, introduzca el comando
begin
.qldb>
begin
Tras iniciar una transacción, el intérprete de comandos muestra la siguiente línea de comandos.
qldb *>
-
A continuación, todas las instrucciones que introduzca se ejecutarán en la misma transacción.
-
Por ejemplo, puede ejecutar una sola instrucción de la siguiente manera.
qldb *>
SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'
Tras pulsar Enter, el intérprete de comandos muestra los resultados de la instrucción.
-
También puede introducir varias instrucciones o comandos separados por un delimitador de punto y coma (
;
) de la siguiente manera.qldb *>
SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; commit
-
-
Para finalizar la transacción, inserte uno de los siguientes comandos.
-
Introduzca el comando
commit
para confirmar la transacción en el diario del libro mayor.qldb *>
commit
-
Introduzca el comando
abort
para detener la transacción y rechazar cualquier cambio que haya realizado.qldb *>
abort
transaction was aborted
-
Límite de tiempo de espera de transacción
Una transacción interactiva cumple con el límite de tiempo de espera de las transacciones de QLDB. Si no confirma una transacción en un plazo de 30 segundos desde su inicio, QLDB vence automáticamente la transacción y rechaza cualquier cambio realizado durante la transacción.
A continuación, en lugar de mostrar los resultados de la instrucción, el intérprete de comandos muestra un mensaje de error de caducidad y vuelve a la línea de comandos normal. Para volver a intentarlo, debe volver a introducir el comando begin
para iniciar una nueva transacción.
transaction failed after 1 attempts, last error: communication failure: Transaction 2UMpiJ5hh7WLjVgEiMLOoO
has expired
Transacciones no interactivas
Puede ejecutar una transacción completa con varias instrucciones agrupando los comandos y las declaraciones de forma secuencial de la siguiente manera.
qldb>
begin; SELECT * FROM Vehicle WHERE VIN = '1N4AL11D75C109151'; SELECT * FROM Person p, DriversLicense l WHERE p.GovId = l.LicenseNumber; commit
Debe separar cada comando y cada instrucción con un delimitador de punto y coma (;
). Si alguna de las instrucciones de la transacción no es válida, el intérprete de comandos la rechaza automáticamente. El intérprete de comandos no procederá con ningún extracto posterior que haya introducido.
También puede configurar varias transacciones.
qldb>
begin; statement1
; commit; begin; statement2
; statement3
; commit
Al igual que en el ejemplo anterior, si se produce un error en una transacción, el intérprete de comandos no procederá con ninguna transacción o instrucción posterior que haya introducido.
Si no finaliza una transacción, el intérprete de comandos pasa al modo interactivo y le pide el siguiente comando o instrucción.
qldb>
begin; statement1
; commit; begin
qldb *>
Salir del intérprete de comandos
Para salir de la sesión de intérprete de comandos qldb
actual, introduzca el comando exit
o quit
, o utilice la combinación de teclas Ctrl+D cuando el intérprete de comandos no esté incluido en una transacción.
qldb>
exit
$
qldb>
quit
$
Ejemplo
Para obtener información sobre cómo escribir instrucciones PartiQL en QLDB, consulte Referencia de PartiQL de Amazon QLDB.
En el siguiente ejemplo, se muestra una secuencia común de comandos básicos.
nota
El intérprete de comandos QLDB ejecuta cada instrucción PartiQL de este ejemplo en su propia transacción.
En este ejemplo se supone que el libro mayor test-ledger
ya existe y está activo.
$
qldb --ledger test-ledger --region us-east-1
qldb>
CREATE TABLE TestTable
qldb>
INSERT INTO TestTable `{"Name": "John Doe"}`
qldb>
SELECT * FROM TestTable
qldb>
DROP TABLE TestTable
qldb>
exit