이 페이지에서는 Spanner CLI를 소개하고 사용 방법을 설명합니다.
Spanner CLI는 Spanner 데이터베이스에 연결하고 상호작용할 수 있는 명령줄 인터페이스 (CLI)입니다. Spanner와 인터페이스하기 위해 Google Cloud CLI (gcloud CLI)에 통합되어 있습니다. Spanner CLI를 사용하여 Spanner 데이터베이스에서 GoogleSQL 문을 직접 실행할 수 있습니다. 문은 데이터 정의 언어 (DDL), 데이터 조작 언어(DML) 또는 데이터 쿼리 언어 (DQL) 문으로 구성될 수 있습니다. Spanner CLI를 사용하여 SQL 명령어 스크립트를 실행하고 태스크를 자동화할 수 있습니다.
자세한 내용은 지원되는 모든 gcloud spanner cli
명령어 목록을 참고하세요.
주요 이점
Spanner CLI의 주요 이점은 다음과 같습니다.
- DDL, DML, DQL SQL 명령어를 실행합니다.
- 여러 줄에 걸쳐 SQL 문을 작성하고 실행할 수 있습니다.
- 시스템 셸 명령 실행, 파일에서 SQL 실행과 같은 시스템 작업을 지원하는 메타 명령어를 지원합니다.
- 스크립트 파일에 일련의 SQL 문을 작성한 다음 Spanner CLI에 스크립트를 실행하도록 지시하여 SQL 실행을 자동화할 수 있습니다. 또한 출력을 출력 파일로 리디렉션할 수 있습니다.
- 대화형 Spanner CLI 세션을 시작하여 SQL 문과 메타 명령어를 직접 입력하고 CLI에서 결과를 확인할 수 있습니다.
시작하기 전에
Spanner CLI는 gcloud CLI에서 사용할 수 있습니다. gcloud spanner cli
명령어를 처음 실행하면 gcloud CLI가 Spanner CLI 구성요소를 자동으로 설치합니다.
Spanner CLI 사용
다음 명령어를 실행하여 Spanner CLI를 시작하고 Spanner 데이터베이스와 상호작용합니다.
gcloud 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 spanner cli
명령어를 실행합니다.
gcloud spanner cli DATABASE_ID --instance INSTANCE_ID \
--execute "SQL"
다음을 바꿉니다.
DATABASE_ID
: 연결하려는 Spanner 데이터베이스의 ID입니다.INSTANCE_ID
: 연결하려는 Spanner 인스턴스의 ID입니다.SQL
: 실행할 SQL입니다.
예를 들어 DDL 문을 실행하려면 다음을 실행합니다.
gcloud 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 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 spanner cli DATABASE_ID --instance INSTANCE_ID \
--source INPUT_FILE_PATH --tee OUTPUT_FILE_PATH
파일 기반 리디렉션 입력 및 출력 방법을 사용할 수도 있습니다.
gcloud 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 spanner cli DATABASE_ID --instance=INSTANCE_ID
CLI와 데이터베이스가 성공적으로 연결되면 다음 작업을 할 수 있는 프롬프트 (예: spanner-cli>
)가 표시됩니다.
- GoogleSQL 문을 직접 입력합니다.
- 트랜잭션 실행
- 지원되는 메타 명령어 사용
ENTER
키를 누르면 문 또는 명령어가 적절한 Spanner 데이터베이스로 전송됩니다. 그러면 Spanner가 문 또는 명령어를 실행합니다.
다음 예에서는 test-database
에서 대화형 세션을 시작한 다음 SELECT 1;
를 실행합니다.
gcloud 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
|
다른 데이터베이스에 연결합니다. 새 데이터베이스 이름을 인수로 사용합니다. |
다음 단계
- 지원되는 모든
gcloud spanner cli
명령어 목록을 확인하세요.