我想知道是否可以将post挂钩附加到DBT_CLOUD_PR模式(由DBT_CLOUD_PR生成),以便只有开发人员才能看到数据库上生成的PR表。
我想做如下几件事:
dbt_cloud_pr:
+post-hook:
- "revoke select on {{ this }} from role reporter"
现在,我们的dbt_cloud_pr模式可以通过雪花上的多个角色看到,并且它用一些我们更愿意隐藏的非必要模式对数据库进行集群。
谢谢你的帮助!
我正在使用dbt完成本教程,以了解更多关于该工具的信息。我之所以使用Postgresql,是因为我无法访问受大力支持的付费工具。
orders和customers在jaffle_shop模式中,payment在stripe模式中。我有下列分期付款表:
with payment as (
select
orderid as order_id,
amount
from dbt.stripe.payment
)
select * from payment
当我尝试做简单的拉力测试时:
with payments as (
select *
我正在尝试重构一个加载模式,该模式由在雪花中工作的嵌套CTE:s组成,在Server中是类似的模式。雪花允许CTE:s与多个with子句。我使用DBT以编程方式构建一个视图(DBT中的模型),该视图收集嵌套CTE:s中多个表的数据质量筛选,以便插入事实表。这在雪花里效果很好。不确定Server是否会以相同的方式处理多个CTE:s。不过,我希望了解一下如何在Server中将其重构为一个CTE。
-- Please note this is just a basic breakdown of the pattern.
-- However. It works fine in Snowflake!
create or replace procedure output_message(message varchar)
returns varchar not null
language sql
as
begin
return message;
end;
call output_message('Hello World');
我所犯的错误:
Database Error in model my_first_dbt_model (models/example/my_first_dbt_model.sql)
001003 (42000): SQL compilation
如果找不到源表,我试图强迫dbt跳过模型,但我没有找到任何可以在此类主题上提供帮助的资源,关于上下文的更详细信息,我有一个名为sales的文件夹,假设我们有两个模型orders和customers,每个模型中的sql代码就是这样看的:
select * from my_project.my_dataset.table
现在要提到的是,table只是BigQuery中的一个临时表,它不断地过期并使用新数据进行更新,因此有时它存在于dataset中,但有时不存在。尽管如此,当尝试运行模型时,dbt会抛出一个错误,因为他没有在源代码中找到表,这很好,我只想让dbt跳过它,不要抛出Table not
起始背景:
有一个dbt_utils“枢轴”函数。这个问题与这一职能无关。
还有 关于雪花内置的局限性,即不能为这个函数使用动态列和/或值。
example_model.sql
with pivot as (
select *
from {{ ref('my_base_model') }}
pivot( sum(VALUE) for KEY in (
{{ dbt_utils.get_column_values(table=ref('my_base_model'), column=
将遗留的SQL脚本重写为DBT结构时,我被UPDATE查询绊倒了,这些查询是在创建表并加载数据之后运行的。
Example: Within the SQL file create_dev_env.sql
...
CREATE TABLE A1 as
SELECT DISTINCT id, name FROM A
UPDATE A1
SET status = true
...
How would I run such process in a row: table creation, data loading and update data, dynami
我希望将构建在R上的SQL管道以特定的顺序执行一串SQL脚本到DBT。我不确定DBT是否是这个场景的正确选择。
场景:-管道看起来-
script 1 ->脚本2 ->脚本3 ->脚本4 ->脚本5等等
脚本1 -从现有表创建表A
CREATE table A AS Select * from existing_table1;
脚本2 -创建表B
CREATE table B AS Select * from existing_table2;
脚本3 -在表A中添加新列,并使用表B通过UPDATE语句添加值
ALTER TABLE A ADD column p IN
我尝试加入两个大表&使用dbt进行筛选。
SQL非常简单,大致如下:
SELECT
u.user_id, t.transaction_id
FROM users u
JOIN transactions t ON t.user_id = u.user_id
WHERE u.active = 1
目前,我使用的是“表”物化,但这是相当浪费的,因为表的底层表在运行到运行时都是99.99%。
但是,从DBT文档中我无法理解如何将这个模型设置为“增量”。
有什么想法吗?
PS。我正在Server上运行。
我想在COPY INTO语句中运行宏到S3桶。显然在雪花里我不能做动态路径。所以我想用一种麻木不仁的方法解决这个问题。
{% macro unload_snowflake_to_s3() %}
{# Get all tables and views from the information schema. #}
{%- set query -%}
select concat('COPY INTO @MY_STAGE/year=', year(current_date()), '/my_file FROM (SELECT OBJECT_C
在阅读了Dbt文档之后,我很难弄清楚如何在Windows 10上安装dbt核心(或任何其他软件包,如dbt、dbt-雪花等等)。
我已经安装了Desktop,已经运行了几个容器(主要是nodeJS容器和Kafka)。然而,我很难理解如何在我的Desktop控制台中提供这些新的Dbt容器。
我可以看到码头映像已正确安装。
$docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
**ghcr.io/dbt-labs/dbt-core 1.2.1
我正在SQL server 2014中创建一个查询
Declare @ff varchar(33)
set @ff='DAY'+cast((SELECT DAY('2011-04-02')) as varchar(2))
print @ff
update CUSTOMER set DAY1='p' where USERId=12
update CUSTOMER set @ff=''+'f'+'' where USERId=15
print @ff
select * from CUSTOMER
它给出
我有一个这样的sql文件,用来转换一个包含json字符串的表 {{ config(materialized='table') }}
with customer_orders as (
select
time,
data as jsonData,
{% set my_dict = fromjson( jsonData ) %}
{% do log("Printout: " ~ my_dict, info=true) %}
from `warehouses.raw_data.customer_orders`
limit 5
)