Início rápido da CLI do Spanner

Esta página apresenta a CLI do Spanner e explica como usá-la.

A CLI do Spanner é uma interface de linhas de comando (CLI) que lhe permite estabelecer ligação e interagir com a sua base de dados do Spanner. Está incorporada na CLI do Google Cloud (CLI gcloud) para interagir com o Spanner. Pode usar a CLI do Spanner para executar diretamente declarações GoogleSQL na sua base de dados do Spanner. As suas declarações podem consistir em declarações de linguagem de definição de dados (LDD), linguagem de manipulação de dados (DML) ou linguagem de consulta de dados (DQL). Pode usar a CLI do Spanner para executar scripts de comandos SQL e automatizar tarefas.

Para mais informações, consulte uma lista de todos os comandos gcloud alpha spanner cli compatíveis.

Principais vantagens

As principais vantagens da CLI do Spanner incluem:

  • Executa comandos SQL DDL, DML e DQL.
  • Pode escrever e executar declarações SQL em várias linhas.
  • Suporta metacomandos para ajudar com tarefas do sistema, como executar um comando de shell do sistema e executar SQL a partir de um ficheiro.
  • Pode automatizar as execuções de SQL escrevendo uma série de declarações SQL num ficheiro de script e, em seguida, dando instruções à CLI do Spanner para executar o script. Além disso, pode redirecionar a saída para um ficheiro de saída.
  • Pode iniciar uma sessão interativa da CLI do Spanner, que lhe permite escrever diretamente declarações SQL e metacomandos, e ver os resultados na CLI.

Antes de começar

A CLI do Spanner está disponível na CLI gcloud. Quando executa o comando gcloud alpha spanner cli pela primeira vez, a CLI gcloud instala automaticamente o componente da CLI do Spanner.

Use a CLI do Spanner

  1. Configure um Google Cloud projeto.

  2. Configure a autenticação através da CLI gcloud.

  3. Crie uma instância.

  4. Crie uma base de dados.

  5. Execute o seguinte comando para iniciar a CLI do Spanner e interagir com a sua base de dados do Spanner:

    gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
    

    Substitua o seguinte:

    • DATABASE_ID: o ID da base de dados do Spanner. Este é o nome que usou no passo anterior de criação de uma base de dados. Pode usar o comando gcloud spanner databases list para listar as bases de dados do Spanner contidas na instância indicada.
    • INSTANCE_ID: o ID da instância do Spanner. Este é o nome que usou no passo anterior de criação de uma instância. Pode usar o comando gcloud spanner instances list para listar as instâncias do Spanner contidas no projeto indicado.

Executar SQL

Pode executar declarações SQL na CLI do Spanner através da opção execute ou de um método de entrada e saída baseado em ficheiros. As suas declarações SQL podem consistir em DDL, DML ou DQL.

Use a flag execute

Para usar a flag execute para executar SQL, execute o seguinte comando gcloud alpha spanner cli:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --execute "SQL"

Substitua o seguinte:

  • DATABASE_ID: o ID da base de dados do Spanner à qual quer estabelecer ligação.
  • INSTANCE_ID: o ID da instância do Spanner à qual quer estabelecer ligação.
  • SQL: o SQL que quer executar.

Por exemplo, para executar uma declaração DDL:

gcloud alpha spanner cli test-database --instance test-instance \
    --execute "CREATE TABLE Singers ( \
        SingerId   INT64 NOT NULL, \
        FirstName  STRING(1024), \
        LastName   STRING(1024), \
        SingerInfo STRING(1024), \
        BirthDate  DATE \
      ) PRIMARY KEY(SingerId);"

Para executar uma instrução DML:

gcloud alpha spanner cli test-database --instance test-instance \
    --execute "INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo) \
        VALUES(1, 'Marc', 'Richards', 'nationality: USA'), \
              (2, 'Catalina', 'Smith', 'nationality: Brazil'), \
              (3, 'Andrew', 'Duneskipper', NULL);"

Use uma entrada e uma saída baseadas em ficheiros

Se usar o método de entrada e saída baseado em ficheiros, o Spanner lê a entrada de um ficheiro e escreve a saída noutro ficheiro. Para usar o método de entrada e saída baseado em ficheiros para executar SQL, execute o seguinte comando:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    --source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH

Também pode usar o método de entrada e saída de redirecionamento baseado em ficheiros:

gcloud alpha spanner cli DATABASE_ID --instance INSTANCE_ID \
    < INPUT_FILE_PATH > OUTPUT_FILE_PATH

Substitua o seguinte:

  • DATABASE_ID: o ID da base de dados do Spanner à qual quer estabelecer ligação.
  • INSTANCE_ID: o ID da instância do Spanner à qual quer estabelecer ligação.
  • SOURCE_FILE_PATH: o ficheiro que contém o SQL que quer executar.
  • OUTPUT_FILE_PATH: o ficheiro com nome para anexar uma cópia da saída SQL.

Inicie uma sessão interativa

Pode iniciar uma sessão interativa da CLI do Spanner, que lhe permite escrever diretamente declarações SQL e metacomandos, e ver os resultados na CLI. Para o fazer, execute o seguinte comando:

gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID

Após a ligação bem-sucedida entre a CLI e a base de dados, é apresentado um comando (por exemplo, spanner-cli>) onde pode fazer o seguinte:

Depois de premir a tecla ENTER, a declaração ou o comando é enviado para a base de dados do Spanner adequada. Em seguida, o Spanner executa a declaração ou o comando.

No exemplo seguinte, inicia uma sessão interativa em test-database e, em seguida, executa SELECT 1;:

gcloud alpha spanner cli test-database --instance test-instance

Welcome to Spanner-Cli Client.
Type 'help;' or '\h' for help.
Type 'exit;' or 'quit;' or '\q' to exit.

spanner-cli> SELECT 1;
+---+
|   |
+---+
| 1 |
+---+

1 rows in set (1.11 msecs)

Execute a instrução DDL

Para executar uma declaração DDL, pode executar o seguinte:

spanner-cli> CREATE TABLE Singers (
          ->         SingerId   INT64 NOT NULL,
          ->         FirstName  STRING(1024),
          ->         LastName   STRING(1024),
          ->         SingerInfo STRING(1024),
          ->         BirthDate  DATE
          -> ) PRIMARY KEY(SingerId);

Query OK, 0 rows affected (17.08 sec)

Execute a instrução DML

Para executar uma declaração DML, pode executar o seguinte:

spanner-cli> INSERT INTO Singers (SingerId, FirstName, LastName, SingerInfo)
          -> VALUES(1, 'Marc', 'Richards', 'nationality: USA'),
          -> (2, 'Catalina', 'Smith', 'nationality: Brazil'),
          -> (3, 'Andrew', 'Duneskipper', NULL);

Query OK, 3 rows affected (0.32 sec)

Metacomandos suportados

A CLI do Spanner suporta metacomandos de utilidade, que são comandos que operam no cliente, neste caso, a CLI do Spanner. Os seguintes metacomandos são suportados na CLI do Spanner:

Command Sintaxe Descrição
? \? Apresenta informações de ajuda. Igual a \h.
Delimitador \d Define o delimitador de declarações. O delimitador predefinido é um ponto e vírgula.
Sair \q Sai da CLI do Spanner. O mesmo que sair.
Go \g Envia e executa a declaração SQL no Spanner.
Ajuda \h Apresenta informações de ajuda. Igual a \?.
Notee \t Desativa a escrita no ficheiro de saída definido por \T.
Comando \R Altera o seu comando para uma string de comando do utilizador.
Sair \q Sai da CLI do Spanner. Igual à saída.
Origem \. Executa SQL a partir de um ficheiro de entrada. Usa [filename] como argumento.
Sistema \! Executa um comando de shell do sistema.
Tee \T Anexa o resultado do comando a um [nome do ficheiro] especificado, juntamente com o resultado padrão.
Utilizar \u Estabelece ligação a outra base de dados. Usa o novo nome da base de dados como argumento.

O que se segue?