我尝试使用apache drill在mysql db中创建一个表。它抛出了一个错误:架构是不可变的。我想到的一个解决方法是使用CTAS语句创建临时表。但我想使用drill在mysql中创建一个永久表。请帮忙。
这是我的MySQL插件配置:
{
"type": "jdbc",
"driver": "com.mysql.jdbc.Driver",
"url": "jdbc:mysql://hostname:3306",
"username": "root",
"password": "",
"enabled": true
}
答案 0 :(得分:4)
Drill无法在MySql中创建表。
限制您只能在工作区中创建新表。你不能 使用存储插件(如Hive和HBase)创建表 没有指定工作区。
创建钻取表时必须使用可写(可变)工作空间。
您能够创建的临时表是在文件系统中而不是在MySql中创建的。
默认情况下,Drill会在默认值中创建临时表 临时工作空间,dfs.tmp。默认临时工作空间必须是 可写,基于文件,并指向已存在的位置, 否则临时表创建失败。你不能创建一个 临时表在默认临时工作空间之外。
[1] https://drill.apache.org/docs/create-table-as-ctas/
[2] https://drill.apache.org/docs/create-temporary-table-as-cttas/
答案 1 :(得分:1)
如果尚未安装Drill,请安装Drill。
将数据库的JDBC驱动程序复制到jars / 3rdparty目录中。 (您需要在每个节点上执行此操作。)
重新启动钻取。请参阅以分布式模式启动钻取。
添加新的存储配置以通过Web控制台进行钻取。下面提供了Oracle,SQL Server,MySQL和Postgres的示例配置。