Spanner CLI 빠른 시작

이 페이지에서는 Spanner CLI를 소개하고 사용 방법을 설명합니다.

Spanner CLI는 Spanner 데이터베이스에 연결하고 상호작용할 수 있는 명령줄 인터페이스 (CLI)입니다. Spanner와 인터페이스하기 위해 Google Cloud CLI (gcloud CLI)에 통합되어 있습니다. Spanner CLI를 사용하여 Spanner 데이터베이스에서 GoogleSQL 문을 직접 실행할 수 있습니다. 문은 데이터 정의 언어 (DDL), 데이터 조작 언어(DML) 또는 데이터 쿼리 언어 (DQL) 문으로 구성될 수 있습니다. Spanner CLI를 사용하여 SQL 명령어 스크립트를 실행하고 태스크를 자동화할 수 있습니다.

자세한 내용은 지원되는 모든 gcloud alpha spanner cli 명령어 목록을 참고하세요.

주요 이점

Spanner CLI의 주요 이점은 다음과 같습니다.

  • DDL, DML, DQL SQL 명령어를 실행합니다.
  • 여러 줄에 걸쳐 SQL 문을 작성하고 실행할 수 있습니다.
  • 시스템 셸 명령 실행, 파일에서 SQL 실행과 같은 시스템 작업을 지원하는 메타 명령어를 지원합니다.
  • 스크립트 파일에 일련의 SQL 문을 작성한 다음 Spanner CLI에 스크립트를 실행하도록 지시하여 SQL 실행을 자동화할 수 있습니다. 또한 출력을 출력 파일로 리디렉션할 수 있습니다.
  • 대화형 Spanner CLI 세션을 시작하여 SQL 문과 메타 명령어를 직접 입력하고 CLI에서 결과를 확인할 수 있습니다.

시작하기 전에

Spanner CLI는 gcloud CLI에서 사용할 수 있습니다. gcloud alpha spanner cli 명령어를 처음 실행하면 gcloud CLI가 Spanner CLI 구성요소를 자동으로 설치합니다.

Spanner CLI 사용

  1. Google Cloud 프로젝트 설정

  2. gcloud CLI를 사용하여 인증을 설정합니다.

  3. 인스턴스 만들기

  4. 데이터베이스를 만듭니다.

  5. 다음 명령어를 실행하여 Spanner CLI를 시작하고 Spanner 데이터베이스와 상호작용합니다.

    gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID
    

    다음을 바꿉니다.

    • DATABASE_ID: Spanner 데이터베이스의 ID입니다. 이 이름은 이전 데이터베이스 만들기 단계에서 사용한 이름입니다. gcloud spanner databases list 명령어를 사용하여 지정된 인스턴스에 포함된 Spanner 데이터베이스를 나열할 수 있습니다.
    • INSTANCE_ID: Spanner 인스턴스의 ID입니다. 이전 인스턴스 만들기 단계에서 사용한 이름입니다. gcloud spanner instances list 명령어를 사용하여 지정된 프로젝트에 포함된 Spanner 인스턴스를 나열할 수 있습니다.

SQL 실행

execute 옵션을 사용하거나 파일 기반 입력 및 출력 메서드를 사용하여 Spanner CLI에서 SQL 문을 실행할 수 있습니다. SQL 문은 DDL, DML 또는 DQL로 구성될 수 있습니다.

execute 플래그 사용

execute 플래그를 사용하여 SQL을 실행하려면 다음 gcloud alpha spanner cli 명령어를 실행합니다.

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

다음을 바꿉니다.

  • DATABASE_ID: 연결하려는 Spanner 데이터베이스의 ID입니다.
  • INSTANCE_ID: 연결하려는 Spanner 인스턴스의 ID입니다.
  • SQL: 실행할 SQL입니다.

예를 들어 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);"

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);"

파일 기반 입력 및 출력 사용

파일 기반 입력 및 출력 방법을 사용하는 경우 Spanner는 파일에서 입력을 읽고 다른 파일에 출력을 씁니다. 파일 기반 입력 및 출력 메서드를 사용하여 SQL을 실행하려면 다음 명령어를 실행하세요.

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

파일 기반 리디렉션 입력 및 출력 방법을 사용할 수도 있습니다.

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

다음을 바꿉니다.

  • DATABASE_ID: 연결하려는 Spanner 데이터베이스의 ID입니다.
  • INSTANCE_ID: 연결하려는 Spanner 인스턴스의 ID입니다.
  • SOURCE_FILE_PATH: 실행할 SQL이 포함된 파일입니다.
  • OUTPUT_FILE_PATH: SQL 출력의 사본을 추가할 이름이 지정된 파일입니다.

대화형 세션 시작

SQL 문과 메타 명령어를 직접 입력하고 CLI에서 결과를 확인할 수 있는 대화형 Spanner CLI 세션을 시작할 수 있습니다. 이렇게 하려면 다음 명령어를 실행하세요.

gcloud alpha spanner cli DATABASE_ID --instance=INSTANCE_ID

CLI와 데이터베이스가 성공적으로 연결되면 다음 작업을 할 수 있는 프롬프트 (예: spanner-cli>)가 표시됩니다.

ENTER 키를 누르면 문 또는 명령어가 적절한 Spanner 데이터베이스로 전송됩니다. 그러면 Spanner가 문 또는 명령어를 실행합니다.

다음 예에서는 test-database에서 대화형 세션을 시작한 다음 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)

DDL 문 실행

DDL 문을 실행하려면 다음을 실행하면 됩니다.

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)

DML 문 실행

DML 문을 실행하려면 다음을 실행하면 됩니다.

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)

지원되는 메타 명령어

Spanner CLI는 유틸리티 메타 명령어를 지원합니다. 유틸리티 메타 명령어는 클라이언트(이 경우 Spanner CLI)에서 작동하는 명령어입니다. Spanner CLI에서는 다음 메타 명령어가 지원됩니다.

명령어 구문 설명
? \? 도움말 정보를 표시합니다. \h과 동일합니다.
구분자 \d 문 구분 기호를 설정합니다. 기본 구분 기호는 세미콜론입니다.
종료 \q Spanner CLI를 종료합니다. 종료와 동일합니다.
Go \g Spanner에서 SQL 문을 전송하고 실행합니다.
도움말 \h 도움말 정보를 표시합니다. \?과 동일합니다.
Notee \t \T에 의해 설정된 출력 파일에 대한 쓰기를 사용 중지합니다.
프롬프트 \R 프롬프트를 사용자 프롬프트 문자열로 변경합니다.
종료 \q Spanner CLI를 종료합니다. 종료와 동일합니다.
소스 \. 입력 파일에서 SQL을 실행합니다. [filename] 을 인수로 사용합니다.
시스템 \! 시스템 셸 명령어를 실행합니다.
\T 명령어 출력을 표준 출력과 함께 지정된 [filename] 에 추가합니다.
사용 \u 다른 데이터베이스에 연결합니다. 새 데이터베이스 이름을 인수로 사용합니다.

다음 단계