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 的步骤:

  1. 设置store.format:

    alter session set `store.format`='json'; 
    
  2. 设置创建 table(调用文件)的位置:

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

    在"workspaces"中,添加writable (mutable)工作空间。例如:

     "tmp": {
         "location": "/tmp",
          "writable": true,
           } 
    

    注意"writable": true

  3. 使用工作空间:

    use dfs.tmp;
    
  4. 触发 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