Apache Drill - 由CTAS创建自己的表

时间:2016-04-08 07:37:02

标签: apache apache-drill

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

2 个答案:

答案 0 :(得分:1)

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

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

  • CSV
  • 镶木
  • JS​​ON

使用CTAS创建表格的步骤:

  1. 设置store.format

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

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

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

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

    请注意"writable": true

  3. 使用工作区:

    use dfs.tmp;
    
  4. Fire CTAS命令。例如:

    CREATE TABLE new_table_name AS (SELECT * FROM hive.mytable);
    
  5. 检查/tmp/abc目录,您将找到JSON文件。

答案 1 :(得分:0)

您需要使用dfs或使用本地文件系统的任何其他存储插件。 例如:创建表dfs.test。temp_count(user_count)作为选择t1.data作为来自s3device的userParams。<File-Path> t1 limit 1