Apache Drill - 通过 CTAS 创建自己的表

1 apache apache-drill

CTAS 命令是:CREATE TABLE new_table_name AS <query>;
但是,在创建表之前我必须创建架构。我无法做到这一点,而且我无法使用现有架构,因为对于每个已安装的架构,我都会收到 error:
schema cp is immutable。因此,解决方案是创建新模式。问题是我找不到这个命令的任何示例。

dev*_*v ツ 5

使用 CTAS,根据文档,您只能在工作区中创建新表。您无法在其他存储插件(例如 Hive 和 HBase)中创建表。

您可以以三种格式之一存储表数据:

  • 数据集
  • 镶木地板
  • json

使用 CTAS 创建表的步骤:

  1. store.format

    alter session set `store.format`='json'; 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 设置创建表(最好称为文件)的位置:

    转到 dfs 插件:http://localhost:8047/storage/dfs

    在“工作空间”中,添加可写(可变)工作空间。例如:

     "tmp": {
         "location": "/tmp",
          "writable": true,
           } 
    
    Run Code Online (Sandbox Code Playgroud)

    请注意 "writable": true

  3. 使用工作区:

    use dfs.tmp;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 发射 CTAS 命令。例如:

    CREATE TABLE new_table_name AS (SELECT * FROM hive.mytable);
    
    Run Code Online (Sandbox Code Playgroud)

检查/tmp/abc目录,你会发现 JSON 文件。