dbt 0.14.0 试用
dbt 0.14.0 在最近已经发布了,dbt server 的还是很不错的特性,以下安装试用下几个新功能
环境准备
安装
如果没有安装的:
pip install dbt
已经安装的:
pip install -U dbt
pg 数据库环境准备
使用docker-compose 运行
- docker-compose 文件
version: "3"
services:
database:
image: postgres
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "dalong"
ports:
- "5432:5432"
database2:
image: postgres
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "dalong"
ports:
- "5433:5432"
rpc
创建简单项目
- dbt init
dbt init 14demo
- 配置profile
profiles.yml 文件
# For more information on how to configure this file, please see:
# https://github.com/fishtown-analytics/dbt/blob/master/sample.profiles.yml
default:
target: dev
outputs:
dev:
type: postgres
host: 127.0.0.1
user: postgres
pass: password
port: 5432
dbname: postgres
schema: dalong
threads: 3
pg:
target: dev
outputs:
dev:
type: postgres
host: 127.0.0.1
user: postgres
pass: dalong
port: 5432
dbname: postgres
schema: public
threads: 3
demo:
target: dev
outputs:
dev:
type: postgres
host: 127.0.0.1
user: postgres
pass: dalong
port: 5432
dbname: postgres
schema: demo
threads: 3
基本使用
- 启动pg
docker-compose up -d
- 启动dbt server rpc 服务
dbt rpc
效果
dbt rpc
Running with dbt=0.14.0
Found 116 macros, 0 analyses, 0 sources, 0 seed files, 0 snapshots, 0 tests, 1 models, 0 operations
14:39:08 | Concurrency: 3 threads (target='dev')
14:39:08 |
14:39:08 | Done.
Serving RPC server at 0.0.0.0:8580
Supported methods: ['compile', 'run', 'ps', 'kill']
Send requests to http://localhost:8580/jsonrpc
- rpc 服务请求格式
{
"jsonrpc": "2.0",
"method": "{ a valid rpc server command }",
"id": "{ a unique identifier for this query }",
"params": {
"timeout": { timeout for the query in seconds },
"sql": "{ base64 encoded dbt-sql query }",
"name": "{ an identifying name for this query }"
}
}
- 一个rpc 服务参考例子
{
"jsonrpc": "2.0",
"method": "compile",
"id": "2db9a2fe-9a39-41ef-828c-25e04dd6b07d",
"params": {
"timeout": 60,
"sql": "c2VsZWN0IHt7IDEgKyAxIH19IGFzIGlk",
"name": "my_first_query"
}
}
curl 格式
curl -X GET \
http://localhost:8580/jsonrpc \
-H 'Accept: */*' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: text/plain' \
-H 'Host: localhost:8580' \
-H 'accept-encoding: gzip, deflate' \
-H 'cache-control: no-cache' \
-H 'content-length: 229' \
-H 'cookie: Cookie_6=value; platform=order' \
-b 'Cookie_6=value; platform=order' \
-d '{
"jsonrpc": "2.0",
"method": "compile",
"id": "2db9a2fe-9a39-41ef-828c-25e04dd6b07d",
"params": {
"timeout": 60,
"sql": "c2VsZWN0IHt7IDEgKyAxIH19IGFzIGlk",
"name": "my_first_query"
}
}'
返回数据
{
"jsonrpc": "2.0",
"result": {
"timing": [
{
"completed_at": "2019-07-11T06:55:53.542902Z",
"started_at": "2019-07-11T06:55:53.531315Z",
"name": "compile"
},
{
"completed_at": "2019-07-11T06:55:53.543440Z",
"started_at": "2019-07-11T06:55:53.543151Z",
"name": "execute"
}
],
"raw_sql": "select {{ 1 + 1 }} as id",
"compiled_sql": "select 2 as id",
"logs": [
{
"timestamp": "2019-07-11 14:55:53,428",
"message": "Parsing rpc.my_new_package.my_first_query",
"levelname": "DEBUG",
"level": 10
},
{
"timestamp": "2019-07-11 14:55:53,432",
"message": "Acquiring new postgres connection \"my_first_query\".",
"levelname": "DEBUG",
"level": 10
},
{
"timestamp": "2019-07-11 14:55:53,433",
"message": "Opening a new connection, currently in state init",
"levelname": "DEBUG",
"level": 10
},
{
"timestamp": "2019-07-11 14:55:53,522",
"message": "Found 116 macros, 0 analyses, 0 sources, 1 None, 0 seed files, 0 snapshots, 0 tests, 1 models, 0 operations",
"levelname": "NOTICE",
"level": 15
},
{
"timestamp": "2019-07-11 14:55:53,523",
"message": "Acquiring new postgres connection \"my_first_query\".",
"levelname": "DEBUG",
"level": 10
},
{
"timestamp": "2019-07-11 14:55:53,524",
"message": "Opening a new connection, currently in state init",
"levelname": "DEBUG",
"level": 10
},
{
"timestamp": "2019-07-11 14:55:53,531",
"message": "Compiling rpc.my_new_package.my_first_query",
"levelname": "DEBUG",
"level": 10
}
]
},
"id": "2db9a2fe-9a39-41ef-828c-25e04dd6b07d"
}
ls 命令
dbt ls
效果:
dbt ls
my_new_package.example.my_first_dbt_model
说明
dbt 0.14.0 的好多新特性还是很不错的
参考资料
https://docs.getdbt.com/docs/rpc
https://docs.getdbt.com/v0.14/docs/run-operation
https://docs.getdbt.com/docs/list
https://github.com/rongfengliang/dbt-0.14.0-learning
dbt 0.14.0 试用的更多相关文章
- dbt 0.14.0 发布
以下内容来自官方博客,新的功能还是很不错的,后边尝试使用下. 参考资料:https://blog.fishtownanalytics.com/dbt-v0-14-0-better-serving-ou ...
- npm WARN react-native-maps@0.14.0 requires a peer of react@>=15.4.0 but none was installed
install the react-native here comes a questions :: npm WARN react-native@0.41.2 requires a pe ...
- 重大更新!Druid 0.18.0 发布—Join登场,支持Java11
Apache Druid本质就是一个分布式支持实时数据分析的数据存储系统. 能够快速的实现查询与数据分析,高可用,高扩展能力. 距离上一次更新刚过了二十多天,距离0.17版本刚过了三个多月,Druid ...
- dbt 0.13.0 新添加特性sources 试用
dbt 0.13 添加了一个新的功能sources 我呢可以用来做以下事情 从基础模型的源表中进行数据选择 测试对于源数据的假设 计算源数据的freshness source 操作 定义source ...
- Adobe Photoshop CC 14.0简体中文特别版32位和64位下载
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- iMessenger 2.0.14.0801简述
有些梦,看似遥不可及.但并非不能实现,仅仅要你足够的强!!.人力有时而穷,所以我们可能还须要一些热心人的帮助.这个人可能就是你. 四年来,我们一直在努力,从未放弃. 在我们做好一件事之前.我们永远不知 ...
- error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":解决方案
我是在安装scrapy时遇到这个问题的,安装其他组件也可能会遇到.但问题解决办法都是大致相同的. 以安装scrapy为例: 在pycharm中安装twisted时出现: error: Microsof ...
- Elasticsearch分布式搜索和数据分析引擎-ElasticStack(上)v7.14.0
Elasticsearch概述 **本人博客网站 **IT小神 www.itxiaoshen.com Elasticsearch官网地址 https://www.elastic.co/cn/elast ...
- 无法解决“Microsoft.SharePoint.Security, Version=15.0.0.0,”与“Microsoft.SharePoint.Security, Version=14.0.0.0”之间的冲突
VisualStudio 2013创建控制台项目,.NetFramework选为4.5.生成目标平台:x64.然后添加对Microsoft.SharePoint.dll的引用. 生成项目时," ...
随机推荐
- Glances - Linux上的实时系统监控工具(Centos安装)
Glances WebServer 模式 在 glances 的 WebServer 模式下,客户端只通过浏览器访问就可以获取远程服务器的运行状态. 安装成功后,使用 glances -w 命令即可 ...
- Scala 系列(一)—— Scala 简介及开发环境配置
一.Scala简介 1.1 概念 Scala 全称为 Scalable Language,即"可伸缩的语言",之所以这样命名,是因为它的设计目标是希望伴随着用户的需求一起成长.Sc ...
- Hive学习笔记(一)——概述
1.Hive是个什么玩意? Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据(有规律的数据)文件映射为一张表,并提供 ...
- Java自学-类和对象 继承
什么是 Java的 继承 ? 在LOL中,武器是物品的一种,也是有名称和价格的 所以在设计类的时候,可以让武器继承物品,从而继承名称和价格属性 步骤 1 : 物品类Item 物品类Item 有属性 n ...
- MyCat - 数据库中间插件
什么是MyCat 是目前最流行的分布式数据库中间插件 为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经 ...
- ES6数组方法总结
关于数组中forEach() .map().filter().reduce().some().every()的总结 1. forEach() let array = [1,2,3,4]; array. ...
- 数据分析 之 NumPy
目录 简单了解数据分析 Python数据分析三剑客(Numpy,Pandas,Matplotlib) 简单使用np.array() 使用np的routines函数创建数组 ndarray N维数组对象 ...
- [LeetCode] 538. 把二叉搜索树转换为累加树 ☆(中序遍历变形)
把二叉搜索树转换为累加树 描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和. ...
- PHP 两个比较运算符 [??] [?:] 差别
1.[??] NULL 合并操作符$a ?? $b即isset($a) ? $a : $b; 注:isset() 已设置并且不为NULL 2.[?:] 三元运算符的简写形式$a ?: $b即$a ? ...
- springboot + 自定义配置文件读取
新建一个配置文件 src\main\resources\resources\config.properties #自定义配置文件 #System Encoding #File Upload Temp ...