USE 문
USE 문 (USE Statements)
USE 문은 현재 데이터베이스나 카탈로그(catalog)를 설정하거나, 모듈의 해석 순서(resolution order)와 활성화 상태를 변경하는 데 사용돼요.
출처: 문서
본문
USE 문 실행하기 (Run a USE statement)
USE 문은 TableEnvironment의 executeSql() 메서드로 실행할 수 있어요. executeSql() 메서드는 USE 연산이 성공하면 'OK'를 반환하고, 그렇지 않으면 예외를 던져요. Python에서는 execute_sql(), SQL CLI에서는 SQL CLI에서 실행해요.
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
// create a catalog
tEnv.executeSql("CREATE CATALOG cat1 WITH (...)");
tEnv.executeSql("SHOW CATALOGS").print();
// +-----------------+
// | catalog name |
// +-----------------+
// | default_catalog |
// | cat1 |
// +-----------------+
// change default catalog
tEnv.executeSql("USE CATALOG cat1");
tEnv.executeSql("SHOW DATABASES").print();
// databases are empty
// +---------------+
// | database name |
// +---------------+
// +---------------+
// create a database
tEnv.executeSql("CREATE DATABASE db1 WITH (...)");
tEnv.executeSql("SHOW DATABASES").print();
// +---------------+
// | database name |
// +---------------+
// | db1 |
// +---------------+
// change default database
tEnv.executeSql("USE db1");
// change module resolution order and enabled status
tEnv.executeSql("USE MODULES hive");
tEnv.executeSql("SHOW FULL MODULES").print();
// +-------------+-------+
// | module name | used |
// +-------------+-------+
// | hive | true |
// | core | false |
// +-------------+-------+
val env = StreamExecutionEnvironment.getExecutionEnvironment()
val tEnv = StreamTableEnvironment.create(env)
// create a catalog
tEnv.executeSql("CREATE CATALOG cat1 WITH (...)")
tEnv.executeSql("SHOW CATALOGS").print()
// +-----------------+
// | catalog name |
// +-----------------+
// | default_catalog |
// | cat1 |
// +-----------------+
// change default catalog
tEnv.executeSql("USE CATALOG cat1")
tEnv.executeSql("SHOW DATABASES").print()
// databases are empty
// +---------------+
// | database name |
// +---------------+
// +---------------+
// create a database
tEnv.executeSql("CREATE DATABASE db1 WITH (...)")
tEnv.executeSql("SHOW DATABASES").print()
// +---------------+
// | database name |
// +---------------+
// | db1 |
// +---------------+
// change default database
tEnv.executeSql("USE db1")
// change module resolution order and enabled status
tEnv.executeSql("USE MODULES hive")
tEnv.executeSql("SHOW FULL MODULES").print()
// +-------------+-------+
// | module name | used |
// +-------------+-------+
// | hive | true |
// | core | false |
// +-------------+-------+
table_env = StreamTableEnvironment.create(...)
# create a catalog
table_env.execute_sql("CREATE CATALOG cat1 WITH (...)")
table_env.execute_sql("SHOW CATALOGS").print()
# +-----------------+
# | catalog name |
# +-----------------+
# | default_catalog |
# | cat1 |
# +-----------------+
# change default catalog
table_env.execute_sql("USE CATALOG cat1")
table_env.execute_sql("SHOW DATABASES").print()
# databases are empty
# +---------------+
# | database name |
# +---------------+
# +---------------+
# create a database
table_env.execute_sql("CREATE DATABASE db1 WITH (...)")
table_env.execute_sql("SHOW DATABASES").print()
# +---------------+
# | database name |
# +---------------+
# | db1 |
# +---------------+
# change default database
table_env.execute_sql("USE db1")
# change module resolution order and enabled status
table_env.execute_sql("USE MODULES hive")
table_env.execute_sql("SHOW FULL MODULES").print()
# +-------------+-------+
# | module name | used |
# +-------------+-------+
# | hive | true |
# | core | false |
# +-------------+-------+
Flink SQL> CREATE CATALOG cat1 WITH (...);
[INFO] Catalog has been created.
Flink SQL> SHOW CATALOGS;
default_catalog
cat1
Flink SQL> USE CATALOG cat1;
Flink SQL> SHOW DATABASES;
Flink SQL> CREATE DATABASE db1 WITH (...);
[INFO] Database has been created.
Flink SQL> SHOW DATABASES;
db1
Flink SQL> USE db1;
Flink SQL> USE MODULES hive;
[INFO] Use modules succeeded!
Flink SQL> SHOW FULL MODULES;
+-------------+-------+
| module name | used |
+-------------+-------+
| hive | true |
| core | false |
+-------------+-------+
2 rows in set
USE CATALOG
USE CATALOG catalog_name
현재 카탈로그를 설정해요. 카탈로그를 명시적으로 지정하지 않는 이후의 모든 명령은 이 카탈로그를 사용해요. 제공된 카탈로그가 존재하지 않으면 예외가 던져져요. 기본 현재 카탈로그는 default_catalog예요.
USE MODULES
USE MODULES module_name1[, module_name2, ...]
선언된 순서로 활성화된 모듈을 설정해요. 이후의 모든 명령은 활성화된 모듈 내에서 메타데이터(함수/사용자 정의 타입/규칙 등)를 해석하며 해석 순서를 따르게 돼요. 모듈은 로드될 때 기본적으로 사용돼요. USE MODULES 문으로 사용되지 않는 로드된 모듈은 비활성화돼요. 기본으로 로드되고 활성화된 모듈은 core예요.
USE
USE [catalog_name.]database_name
현재 데이터베이스를 설정해요. 데이터베이스를 명시적으로 지정하지 않는 이후의 모든 명령은 이 데이터베이스를 사용해요. 제공된 데이터베이스가 존재하지 않으면 예외가 던져져요. 기본 현재 데이터베이스는 default_database예요.