DBT的好处是显而易见的,它支持连接多达41种数据库。而且不需要你写DDL语句,只要写select语句,DBT会自动帮你推断schema结构,将数据写入到数据库中:
但是使用了一段时间之后,发现DBT也存在着如下这些不足之处:
1. Hive分区表支持度不够好
这个其实很dbt生成sql的方式有关。dbt讲数据写入到数据库的时候,是使用create table as *** 的语句写入到数据库的,对应到Hive的话,会生成如下sql语句:
create table testdb.my_first_dbt_model partitioned by (city)
as
with mysource as (select 1 as id, "name" as name, "city_a" as city
)
select * from mysource
Hive4.x 才会支持这种语法:https://issues.apache.org/jira/browse/HIVE-20241,当前主流的Hive版本都是1.x 和 2.x,3.x都很少见到,哭死...
2. Greenplum对应的dbt插件要求要GP版本至少是6.0版本以上
3. 不支持同时连接多个数据库
4. cross-database 宏还是少了点,基础的字符串拼接是有的,json解析相关的就没有了...
anyway,还是希望DBT发展的越来越好吧,hhh