Apache Drill - 由 CTAS 创建自己的 table
Apache Drill - creating own table by CTAS
CTAS 命令是:CREATE TABLE new_table_name AS <query>;
但是,在创建 table 之前,我必须创建架构。我做不到,而且我不能使用现有模式,因为对于每个已安装的模式,我都会收到错误消息:
schema cp is immutable
。因此解决方案是创建新模式。问题是我找不到这个命令的任何例子。
根据 docs 使用 CTAS,您只能在工作区中创建新的 table。您不能在 Hive 和 HBase 等其他存储插件中创建 table。
您可以使用以下三种格式之一存储 table 数据:
- csv
- 实木复合地板
- json
使用 CTAS 创建 table 的步骤:
设置store.format
:
alter session set `store.format`='json';
设置创建 table(调用文件)的位置:
转到 dfs 插件:http://localhost:8047/storage/dfs
在"workspaces"中,添加writable (mutable)工作空间。例如:
"tmp": {
"location": "/tmp",
"writable": true,
}
注意"writable": true
使用工作空间:
use dfs.tmp;
触发 CTAS 命令。例如:
CREATE TABLE new_table_name AS (SELECT * FROM hive.mytable);
检查/tmp/abc
目录,你会找到JSON个文件。
您需要使用 dfs 或任何其他使用本地文件系统的存储插件。
例如:创建 table dfs.test.temp_count
(user_count) as select t1.data as userParams from s3device.<File-Path>
t1 limit 1
CTAS 命令是:CREATE TABLE new_table_name AS <query>;
但是,在创建 table 之前,我必须创建架构。我做不到,而且我不能使用现有模式,因为对于每个已安装的模式,我都会收到错误消息:
schema cp is immutable
。因此解决方案是创建新模式。问题是我找不到这个命令的任何例子。
根据 docs 使用 CTAS,您只能在工作区中创建新的 table。您不能在 Hive 和 HBase 等其他存储插件中创建 table。
您可以使用以下三种格式之一存储 table 数据:
- csv
- 实木复合地板
- json
使用 CTAS 创建 table 的步骤:
设置
store.format
:alter session set `store.format`='json';
设置创建 table(调用文件)的位置:
转到 dfs 插件:http://localhost:8047/storage/dfs
在"workspaces"中,添加writable (mutable)工作空间。例如:
"tmp": { "location": "/tmp", "writable": true, }
注意
"writable": true
使用工作空间:
use dfs.tmp;
触发 CTAS 命令。例如:
CREATE TABLE new_table_name AS (SELECT * FROM hive.mytable);
检查/tmp/abc
目录,你会找到JSON个文件。
您需要使用 dfs 或任何其他使用本地文件系统的存储插件。
例如:创建 table dfs.test.temp_count
(user_count) as select t1.data as userParams from s3device.<File-Path>
t1 limit 1