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 试用的更多相关文章

  1. dbt 0.14.0 发布

    以下内容来自官方博客,新的功能还是很不错的,后边尝试使用下. 参考资料:https://blog.fishtownanalytics.com/dbt-v0-14-0-better-serving-ou ...

  2. 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 ...

  3. 重大更新!Druid 0.18.0 发布—Join登场,支持Java11

    Apache Druid本质就是一个分布式支持实时数据分析的数据存储系统. 能够快速的实现查询与数据分析,高可用,高扩展能力. 距离上一次更新刚过了二十多天,距离0.17版本刚过了三个多月,Druid ...

  4. dbt 0.13.0 新添加特性sources 试用

    dbt 0.13 添加了一个新的功能sources 我呢可以用来做以下事情 从基础模型的源表中进行数据选择 测试对于源数据的假设 计算源数据的freshness source 操作 定义source ...

  5. Adobe Photoshop CC 14.0简体中文特别版32位和64位下载

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. iMessenger 2.0.14.0801简述

    有些梦,看似遥不可及.但并非不能实现,仅仅要你足够的强!!.人力有时而穷,所以我们可能还须要一些热心人的帮助.这个人可能就是你. 四年来,我们一直在努力,从未放弃. 在我们做好一件事之前.我们永远不知 ...

  7. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":解决方案

    我是在安装scrapy时遇到这个问题的,安装其他组件也可能会遇到.但问题解决办法都是大致相同的. 以安装scrapy为例: 在pycharm中安装twisted时出现: error: Microsof ...

  8. Elasticsearch分布式搜索和数据分析引擎-ElasticStack(上)v7.14.0

    Elasticsearch概述 **本人博客网站 **IT小神 www.itxiaoshen.com Elasticsearch官网地址 https://www.elastic.co/cn/elast ...

  9. 无法解决“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的引用. 生成项目时," ...

随机推荐

  1. 2. Spark GraphX解析

    2.1 存储模式 2.1.1 图存储模式 巨型图的存储总体上有边分割和点分割两种存储方式 1)边分割(Edge-Cut):每个顶点都存储一次,但有的边会被打断分到两台机器上.这样做的好处是节省存储空间 ...

  2. delphi xe10 FMX 启动参数

    关于 Delphi Xe10 FMX 启动参数  需要在启动窗口前来调用 也就是在bar文件修改 如果参数多可以用json来 uses system.SysUtils; var param: stri ...

  3. mysql连接不释放

    环境: 持久层:JPA 数据库连接池:druid 数据库中间件:Mycat 数据库:Mysql 报错: Unable to acquire JDBC Connection 排查步骤: 方法一: 1.d ...

  4. XML和Json的特点

    Xml特点: 1.有且只有一个根节点: 2.数据传输的载体 3.所有的标签都需要自定义 4.是纯文本文件 Json(JavaScript Object Notation)特点: json分为两种格式: ...

  5. 如何使用Git 优雅的版本回退呢?

    在版本迭代开发过程中,相信很多人都会有过错误提交的时候(至少良许有过几次这样的体验).这种情况下,菜鸟程序员可能就会虎驱一震,紧张得不知所措.而资深程序员就会微微一笑,摸一摸锃亮的脑门,然后默默的进行 ...

  6. JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象

    package com.yqw.list; import java.util.ArrayList;import java.util.Iterator; public class Demo_ArrayL ...

  7. 机智云连接esp8266--远程控制风扇转速

    概述 下面我们使用esp8266开发板和机智云云端,实现如何将一个USB风扇,改造成可以远程控制转速的智能风扇. 1.准备工作 硬件: (1)esp8266开发板 (2)USB线 (3)USB风扇 软 ...

  8. Pandas 数据筛选,去重结合group by

    Pandas 数据筛选,去重结合group by 需求 今小伙伴有一个Excel表, 是部门里的小伙9月份打卡记录, 关键字段如下: 姓名, 工号, 日期, 打卡方式, 时间, 详细位置, IP地址. ...

  9. Centos 脚本中几个特殊符号的作用笔记

    反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串 单引号(''):转义其中所有的变量为单纯的字符串 双引号(""):保留其中的变量属性,不进行转义处理 反引号(``):把其中的 ...

  10. Python 软件安装

    安装Python解释器 Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 打开官网https://www.p ...