Hive表和视图
内部表
这是Hive默认的表类型,也称为受控表,表数据默认存储在/user/hive/warehouse
目录。
内部表
加载的数据都会被移动到/user/hive/warehouse
目录,而删除表时,表的元数据和数据都会被删除。
之前使用过的存储在Metastore
中的表都是内部表
。
外部表
在创建数据表时如果加上关键字External
,那么数据表就变成了外部表
。
外部表
在加载数据时,数据不会被移动到/user/hive/warehouse
目录,而只是与外部数据之间建立一个映射关系(引用链接)。
所以当删除表的时候,只会删除引用链接,而不会删除数据。
> cd /home/work/hive-3.1.3
> ./bin/hive
# 创建外部表(如果不加location关键字,那么数据会被放到/user/hive/warehouse目录)
hive (default)> create external table t_externala (
key string
) location "/data/external/";
# 查询刚才创建的外部表的数据
> hdfs dfs -ls -R /data
Found 1 items
drwxr-xr-x - root supergroup 0 2023-03-20 20:53 /data/external
除了类型不一样,数据存储的位置不一样,外部表
和内部表
的使用没什么区别。
# 加载数据
hive (default)> load data local inpath '/home/work/volumes/hive/data/external_table.data' into table t_externala;
# 查询数据
hive (default)> select * from t_externala;
OK
a
b
c
Time taken: 0.258 seconds, Fetched: 3 row(s)
# 查询刚才加载的外部表的数据
> hdfs dfs -ls -R /data
drwxr-xr-x - root supergroup 0 2023-03-20 20:55 /data/external
-rw-r--r-- 1 root supergroup 10 2023-03-20 20:55 /data/external/external_table.data
# 删除外部表
hive (default)> drop table t_externala;
# 数据仍然还在HDFS上
> hdfs dfs -ls -R /data
drwxr-xr-x - root supergroup 0 2023-03-20 20:57 /data/external
-rw-r--r-- 1 root supergroup 10 2023-03-20 20:57 /data/external/external_table.data
删除外部表
,只不过是删除了链接。如果再重建一个指向相同位置的外部表,数据同样能够查询到。
# 新建一个外部表,指向之前被删除的外部表的数据存储位置
hive (default)> create external table t_external_new (
key string
) location "/data/external/";
# 查询数据
hive (default)> select * from t_external_new;
OK
a
b
c
Time taken: 0.233 seconds, Fetched: 3 row(s)
从结果来看,数据并没有丢失,这也印证了外部表
只是一个引用链接的说法。
内部表
和外部表
之间是可以互相转换的。
# 将内部表转换成外部表
hive (default)> alter table <tablename> set tblproperties("external"="true");
# 将外部表转换成内部表
hive (default)> alter table <tablename> set tblproperties("external"="false");
仅凭数据存储的位置是不能判定数据表是内部表
还是外部表
的。
内部表
创建时也可以指定location
关键字,让数据保存在别的地方。外部表
创建时也可以不指定location
关键字,让数据保存在/user/hive/warehouse
目录。
分区表
所谓分区表
,就是按照指定的字段类型,将数据分散到不同的分区
中去。
例如,将日志文件以天为单位,存储到Hive时,就可以指定将数据按天进行分区。
内部分区表
> cd /home/work/hive-3.1.3
> ./bin/hive
# 创建内部分区表
hive (default)> create table t_partitiona (
id int,
name string
) comment "仅单个分区的内部分区表"
partitioned by (dt string)
row format delimited
fields terminated by '\t'
lines terminated by '\n';
# 查询表信息
hive (default)> desc t_partitiona;
OK
id int
name string
dt string
# Partition Information
# col_name data_type comment
dt string
Time taken: 0.24 seconds, Fetched: 7 row(s)
# 加载数据
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitiona.data' into table t_partitiona partition(dt="20230319");
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitiona.data' into table t_partitiona partition(dt="20230320");
# 查询数据
hive (default)> select * from t_partitiona;
OK
1 lixingyun 20230319
2 wanglin 20230319
1 lixingyun 20230320
2 wanglin 20230320
Time taken: 0.291 seconds, Fetched: 4 row(s)
# 也可以在HDFS中查询
> hdfs dfs -ls -R /user/hive/warehouse/t_partitiona
drwxr-xr-x - root supergroup 0 2023-03-19 21:15 /user/hive/warehouse/t_partitiona/dt=20230319
-rw-r--r-- 1 root supergroup 22 2023-03-19 21:15 /user/hive/warehouse/t_partitiona/dt=20230319/partitiona.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:16 /user/hive/warehouse/t_partitiona/dt=20230320
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:16 /user/hive/warehouse/t_partitiona/dt=20230320/partitiona.data
# 或者直接查询分区数据
hive (default)> select * from t_partitiona where dt="20230319";
OK
1 lixingyun 20230319
2 wanglin 20230319
Time taken: 0.348 seconds, Fetched: 2 row(s)
也可以直接添加新的分区而不加载数据。
hive (default)> alter table t_partitiona add partition(dt="20230318");
# 查询数据
hive (default)> select * from t_partitiona;
OK
1 lixingyun 20230319
2 wanglin 20230319
1 lixingyun 20230320
2 wanglin 20230320
Time taken: 0.293 seconds, Fetched: 4 row(s)
# 也可以在HDFS中查询(会多出一个没有数据的空分区)
> hdfs dfs -ls -R /user/hive/warehouse/t_partitiona
drwxr-xr-x - root supergroup 0 2023-03-18 21:20 /user/hive/warehouse/t_partitiona/dt=20230318
drwxr-xr-x - root supergroup 0 2023-03-19 21:15 /user/hive/warehouse/t_partitiona/dt=20230319
-rw-r--r-- 1 root supergroup 22 2023-03-19 21:15 /user/hive/warehouse/t_partitiona/dt=20230319/partitiona.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:16 /user/hive/warehouse/t_partitiona/dt=20230320
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:16 /user/hive/warehouse/t_partitiona/dt=20230320/partitiona.data
创建好了分区表,可以查看表中有哪些分区。
# 查询分区
hive (default)> show partitions t_partitiona;
OK
dt=20230318
dt=20230319
dt=20230320
Time taken: 0.273 seconds, Fetched: 3 row(s)
也可以删除不需要的分区。
# 删除分区
hive (default)> alter table t_partitiona drop partition(dt="20230318");
# 再询分区
hive (default)> show partitions t_partitiona;
OK
dt=20230319
dt=20230320
Time taken: 0.273 seconds, Fetched: 3 row(s)
指定多个字段的分区。
# 创建有两个分区的内部分区表
hive (default)> create table t_partitionb (
id int,
name string
) comment "有两个分区的内部分区表"
partitioned by (year string, level int)
row format delimited
fields terminated by '\t'
lines terminated by '\n';
# 查询表信息
hive (default)> desc t_partitionb;
OK
id int
name string
year string
level int
# Partition Information
# col_name data_type comment
year string
level int
Time taken: 0.187 seconds, Fetched: 9 row(s)
# 给不同分区加载数据
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitionb.data' into table t_partitionb partition(year="2022", level=1);
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitionb.data' into table t_partitionb partition(year="2022", level=2);
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitionb.data' into table t_partitionb partition(year="2023", level=1);
hive (default)> load data local inpath '/home/work/volumes/hive/data/partitionb.data' into table t_partitionb partition(year="2023", level=2);
# 查询数据
hive (default)> select * from t_partitionb;
OK
1 lixingyun 2022 1
2 wanglin 2022 1
3 shihao 2022 1
1 lixingyun 2022 2
2 wanglin 2022 2
3 shihao 2022 2
1 lixingyun 2023 1
2 wanglin 2023 1
3 shihao 2023 1
1 lixingyun 2023 2
2 wanglin 2023 2
3 shihao 2023 2
Time taken: 0.309 seconds, Fetched: 12 row(s)
# 也可以在HDFS中查询
> hdfs dfs -ls -R /user/hive/warehouse/t_partitionb
drwxr-xr-x - root supergroup 0 2023-03-20 21:31 /user/hive/warehouse/t_partitionb/year=2022
drwxr-xr-x - root supergroup 0 2023-03-20 21:31 /user/hive/warehouse/t_partitionb/year=2022/level=1
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:31 /user/hive/warehouse/t_partitionb/year=2022/level=1/partitionb.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2022/level=2
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2022/level=2/partitionb.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2023
drwxr-xr-x - root supergroup 0 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2023/level=1
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2023/level=1/partitionb.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2023/level=2
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:32 /user/hive/warehouse/t_partitionb/year=2023/level=2/partitionb.data
# 或者直接查询分区数据
hive (default)> select * from partitionb where year="2023" and level=2;
OK
1 lixingyun 2023 2
2 wanglin 2023 2
3 shihao 2023 2
Time taken: 0.117 seconds, Fetched: 3 row(s)
可以删除某个不需要的分区,或者再增加额外的分区。
# 删除分区
hive (default)> alter table t_partitionb drop partition(level=1);
Dropped the partition year=2022/level=1
Dropped the partition year=2023/level=1
OK
Time taken: 0.344 seconds
# 再查询分区
hive (default)> show partitions t_partitionb;
OK
year=2022/level=2
year=2023/level=2
Time taken: 0.239 seconds, Fetched: 2 row(s)
# 再查询数据
hive (default)> select * from t_partitionb;
OK
1 lixingyun 2022 2
2 wanglin 2022 2
3 shihao 2022 2
1 lixingyun 2023 2
2 wanglin 2023 2
3 shihao 2023 2
Time taken: 0.305 seconds, Fetched: 6 row(s)
# 也可以在HDFS中查询
> hdfs dfs -ls -R /user/hive/warehouse/t_partitionb
drwxr-xr-x - root supergroup 0 2023-03-20 21:34 /user/hive/warehouse/t_partitionb/year=2022
drwxr-xr-x - root supergroup 0 2023-03-20 21:34 /user/hive/warehouse/t_partitionb/year=2022/level=2
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:34 /user/hive/warehouse/t_partitionb/year=2022/level=2/partitionb.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:34 /user/hive/warehouse/t_partitionb/year=2023
drwxr-xr-x - root supergroup 0 2023-03-20 21:35 /user/hive/warehouse/t_partitionb/year=2023/level=2
-rw-r--r-- 1 root supergroup 31 2023-03-20 21:35 /user/hive/warehouse/t_partitionb/year=2023/level=2/partitionb.data
外部分区表
外部分区表
除了具有外部表
的特性之外,其他的地方和内部分区表
没有什么不同。
# 创建外部分区表
hive (default)> create external table t_external_partition (
id int,
name string
) comment "有两个分区的内部分区表"
partitioned by (dt string, level int)
row format delimited
fields terminated by '\t'
lines terminated by '\n'
location "/data/extpart/";
# 查询表信息
hive (default)> desc t_external_partition;
OK
id int
name string
dt string
level int
# Partition Information
# col_name data_type comment
dt string
level int
Time taken: 0.208 seconds, Fetched: 9 row(s)
# 加载数据
hive (default)> load data local inpath '/home/work/volumes/hive/data/external_partition.data' into table t_external_partition partition(dt="20230319", level=1);
hive (default)> load data local inpath '/home/work/volumes/hive/data/external_partition.data' into table t_external_partition partition(dt="20230319", level=2);
hive (default)> load data local inpath '/home/work/volumes/hive/data/external_partition.data' into table t_external_partition partition(dt="20230320", level=1);
hive (default)> load data local inpath '/home/work/volumes/hive/data/external_partition.data' into table t_external_partition partition(dt="20230320", level=2);
# 查询数据
hive (default)> select * from t_external_partition;
OK
1 lixingyun 20230319 1
2 wanglin 20230319 1
1 lixingyun 20230319 2
2 wanglin 20230319 2
1 lixingyun 20230320 1
2 wanglin 20230320 1
1 lixingyun 20230320 2
2 wanglin 20230320 2
Time taken: 0.266 seconds, Fetched: 8 row(s)
# 也可以在HDFS中查询
> hdfs dfs -ls -R /data/extpart
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:41 /data/extpart/dt=20230319/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230319/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230319/level=2/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=2/external_partition.data
# 或者直接查询分区数据
hive (default)> select * from t_external_partition where dt="20230319" and level=1;
OK
1 lixingyun 20230319 1
2 wanglin 20230319 1
Time taken: 0.106 seconds, Fetched: 2 row(s)
因为是外部表
,所以即使删除分区,数据也还会保存下来。
# 删除分区
hive (default)> alter table t_external_partition drop partition(dt="20230319");
Dropped the partition dt=20230319/level=1
Dropped the partition dt=20230319/level=2
OK
Time taken: 0.337 seconds
# 再查询分区
hive (default)> show partitions t_external_partition;
OK
dt=20230320/level=1
dt=20230320/level=2
Time taken: 0.239 seconds, Fetched: 2 row(s)
# 再查询数据(少了分区)
hive (default)> select * from t_external_partition;
OK
1 lixingyun 20230320 1
2 wanglin 20230320 1
1 lixingyun 20230320 2
2 wanglin 20230320 2
Time taken: 0.283 seconds, Fetched: 4 row(s)
# 再在HDFS中查询(数据无变化)
> hdfs dfs -ls -R /data/extpart
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:41 /data/extpart/dt=20230319/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230319/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230319/level=2/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=2/external_partition.data
和之前一样,再把分区加回来,数据仍然在,但引用链接
并不会完全恢复。
# 增加分区
hive (default)> alter table t_external_partition add partition(dt="20230319", level=1) location "/data/extpart/";
hive (default)> alter table t_external_partition add partition(dt="20230319", level=2) location "/data/extpart/";
# 再查询分区
hive (default)> show partitions t_external_partition;
OK
dt=20230319/level=1
dt=20230319/level=2
dt=20230320/level=1
dt=20230320/level=2
Time taken: 0.232 seconds, Fetched: 4 row(s)
# 再查询数据(dt="20230319"中的数据并没有自动恢复,需要手动再重新加载一次)
hive (default)> select * from t_external_partition;
OK
1 lixingyun 20230320 1
2 wanglin 20230320 1
1 lixingyun 20230320 2
2 wanglin 20230320 2
Time taken: 0.283 seconds, Fetched: 4 row(s)
# 再在HDFS中查询(数据无变化)
> hdfs dfs -ls -R /data/extpart
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319
drwxr-xr-x - root supergroup 0 2023-03-20 21:41 /data/extpart/dt=20230319/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:41 /data/extpart/dt=20230319/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230319/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230319/level=2/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=1
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=1/external_partition.data
drwxr-xr-x - root supergroup 0 2023-03-20 21:42 /data/extpart/dt=20230320/level=2
-rw-r--r-- 1 root supergroup 22 2023-03-20 21:42 /data/extpart/dt=20230320/level=2/external_partition.data
实际工作中,load data local inpath ... into table ... partition(...);
语句并不常见,因为大多数情况下,数据基本上都是从Flume发送到HDFS中去的,不需要人为加载数据。
而alter table ... add partition(...) location "...";
语句会使用得更频繁,因为只需要定期执行它给表增加分区就行了。
桶表
所谓桶表
,其实就是对数据进行Hash
取值,然后根据Hash
值放到不同的文件中存储。
在物理上,每个桶
就是表或分区中的一个文件。
桶表主要是用于解决数据分布不均匀时的倾斜问题。
# 创建一张普通表
hive (default)> create table t_example (
id int,
name string
) comment "样例表"
row format delimited
fields terminated by '\t'
lines terminated by '\n';
# 加载数据
hive (default)> load data local inpath '/home/work/volumes/hive/data/example.data' into table t_example;
# 查询数据
hive (default)> select * from t_example;
OK
1 李星云
2 王林
3 石昊
4 萧炎
5 秦羽
6 罗峰
7 柳神
8 美杜莎
9 云韵
10 云曦
11 姬如雪
12 李慕婉
Time taken: 0.376 seconds, Fetched: 12 row(s)
# 创建桶表
hive (default)> create table t_bucketa (
id int,
name string
) comment "简单桶表"
clustered by (id) into 3 buckets
row format delimited
fields terminated by '\t'
lines terminated by '\n';
# 开启桶
hive (default)> set hive.enforce.bucketing=true;
# 桶表不能用load data的方式添加数据,而是需要从其他表中查询数据添加进来
hive (default)> insert into table t_bucketa select id, name from t_example;
Query ID = root_20240712185143_038f81cd-efb2-41a8-89f1-736d6ddefe01
Total jobs = 2
Launching Job 1 out of 2
Number of reduce tasks determined at compile time: 3
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
......
Time taken: 39.873 seconds
# 再查询数据(顺序有变化)
hive (default)> select * from t_bucketa;
OK
12 李慕婉
9 云韵
6 罗峰
3 石昊
10 云曦
7 柳神
4 萧炎
1 李星云
11 姬如雪
8 美杜莎
5 秦羽
2 王林
Time taken: 0.257 seconds, Fetched: 12 row(s)
# 查询HDFS(数据被分到3个`桶`里去了)
> hdfs dfs -ls -R /user/hive/warehouse/t_bucketa
-rw-r--r-- 1 root supergroup 40 2023-03-20 22:00 /user/hive/warehouse/t_bucketa/000000_0
-rw-r--r-- 1 root supergroup 40 2023-03-20 22:00 /user/hive/warehouse/t_bucketa/000001_0
-rw-r--r-- 1 root supergroup 43 2023-03-20 22:00 /user/hive/warehouse/t_bucketa/000002_0
# 可以查看每个`桶`里存放的内容
> hdfs dfs -cat /user/hive/warehouse/t_bucketa/000000_0
12 李慕婉
9 云韵
6 罗峰
3 石昊
除了可以解决数据倾斜问题,桶表
还可以做下面两件事。
- 进行数据抽样。
hive (default)> select * from t_bucketa tablesample(bucket 1 out of 3 on id);
OK
9 云韵
7 柳神
Time taken: 0.271 seconds, Fetched: 2 row(s)
tablesample(bucket x out of y on column)
^ ^ ^
| | |
| | └──── 重新生成`Hash`值的列
| |
| └────── 桶的数量,或桶数量的最小倍数,表示把桶表中的数据重新随机分为多少桶,且必须y>=x
|
└────────────── 表示取出第几个桶里的数据
# 可以分别再执行下面的语句看看效果
hive (default)> select * from t_bucketa tablesample(bucket 2 out of 6 on id);
hive (default)> select * from t_bucketa tablesample(bucket 3 out of 6 on id);
hive (default)> select * from t_bucketa tablesample(bucket 4 out of 6 on id);
......
- 提高某些查询语句的效率,例如
JOIN
。
# 如果表a和表b都是桶表,那么下面的查询不会产生笛卡尔积,效率会高一些
hive (default)> select a.id, a.name, b.age, b.address from a join b on a.id = b.id;
视图
和MySQL一样,Hive中的视图也是一张虚拟表,用于降低查询的复杂度。
# 创建视图
hive (default)> create view t_view as select id, name from t_example;
# 查询视图
hive (default)> select * from t_view;
OK
1 李星云
2 王林
3 石昊
4 萧炎
5 秦羽
6 罗峰
7 柳神
8 美杜莎
9 云韵
10 云曦
11 姬如雪
12 李慕婉
Time taken: 0.295 seconds, Fetched: 12 row(s)
创建视图后,它在/user/hive/warehouse/
中是查询不到的,而在存储Metastore
的MySQL数据表中,则是这样的。
+----------------------+----------------+------------------------------------------------------------------------+--------------------------------+
| TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+----------------------+----------------+------------------------------------------------------------------------+--------------------------------+
| t_complex | MANAGED_TABLE | NULL | NULL |
| t_map | MANAGED_TABLE | NULL | NULL |
| t_struct | MANAGED_TABLE | NULL | NULL |
| t_multiple | MANAGED_TABLE | NULL | NULL |
| t_partitiona | MANAGED_TABLE | NULL | NULL |
| t_partitionb | MANAGED_TABLE | NULL | NULL |
| t_external_partition | EXTERNAL_TABLE | NULL | NULL |
| t_external_new | EXTERNAL_TABLE | NULL | NULL |
| t_bucketa | MANAGED_TABLE | NULL | NULL |
| t_example | MANAGED_TABLE | NULL | NULL |
| t_view | VIRTUAL_VIEW | select `t_example`.`id`, `t_example`.`name` from `default`.`t_example` | select id, name from t_example |
+----------------------+----------------+------------------------------------------------------------------------+--------------------------------+
删除视图和删除表一样,都使用drop
。
感谢支持
更多内容,请移步《超级个体》。