【dbt Docs】Building a dbt Project - Hooks & Operations

7343 단어 dbttech

Hooks & Operations


https://docs.getdbt.com/docs/building-a-dbt-project/hooks-operations

Related documentation

  • pre-hook & post-hook
  • on-run-start & on-run-end
  • run-operation command
  • Assumed knowledge

  • Project configurations
  • Model configurations
  • Macros
  • Getting started


    효과적인 데이터베이스 관리에서는 다음과 같은 추가 SQL 문이 필요할 수 있습니다.
  • 표/보기에 특권 부여
  • UDF 제작
  • Redshift로 테이블을 Vacuum
  • 으로 설정
  • Redshift Spectrum 외부 테이블에 파티션 만들기
  • Snowflake의 Warehouse의 회복/일시정지/사이즈 변경
  • Snowflake로 Pipe 업데이트
  • Snowflake로 Share 제작
  • Snowflake를 통한 데이터베이스 클론 생성
  • dbt는 버전 관리를 하고 dbt 프로젝트의 일부로 이 문장을 수행하는 데 사용되는 두 가지 서로 다른 인터페이스 (연결과 조작) 를 제공합니다.

    Hooks


    연결고리는 SQL의 sni 애완동물로 서로 다른 시간에 실행됩니다.
  • pre-hook: 모델, 시드 또는 스냅샷을 생성하기 전에 수행합니다.
  • post-hook: 모형, 피드 또는 캡처 구축 후 실행됩니다.
  • on-run-start: 시작dbt run, dbt seed 또는 dbt snapshot
  • on-run-end: 최종 실행dbt run, dbt seed 또는 dbt snapshot
  • 연결고리는 dbt_project.yml 파일에 정의되어 있습니다.pre-hookpost-hook는 모두 config 블록으로 정의할 수 있다.
    :::yml:dbt_project.yml
    on-run-end:
  • "grant usage on {{ target.schema }} to role reporter"
  • models:
    +post-hook:
    - "grant select on {{ this }} to role reporter"
    :::
    models/.sql
    {{ config(
        post_hook=[
          "grant select on {{ this }} to role reporter"
        ]
    ) }}
    
    select ...
    

    Operations


    명령 명령 명령을 사용하여 작업을 수행할 수 있는 매크로입니다.따라서 조작은 실제적으로dbt 프로젝트 내의 개별 자원이 아니다.이것들은 단지 모델을 실행하지 않고 매크로를 호출하는 편리한 방법일 뿐이다.run-operationmacros/grant_select.sql
    {% macro grant_select(role) %}
    {% set sql %}
        grant usage on schema {{ target.schema }} to role {{ role }};
        grant select on all tables in schema {{ target.schema }} to role {{ role }};
        grant select on all views in schema {{ target.schema }} to role {{ role }};
    {% endset %}
    
    {% do run_query(sql) %}
    {% do log("Privileges granted", info=True) %}
    {% endmacro %}
    
    이 매크로를 작업으로 호출하려면 dbt run-operation grantselect-args’{role:reporter}’.
    $ dbt run-operation grant_select --args '{role: reporter}'
    Running with dbt=0.16.1
    Privileges granted
    

    Additional examples

  • 연결 및 조작 권한 사용에 대한 상세한 설명
  • 외판
  • Snowflake를 사용한 복제본 없음 클론을 사용하여 개발 환경 재설정
  • Redshift 소프트웨어 HOUSE 실행 vacuum에서 analyze
  • Snowflak에서 공유 만들기
  • Redshift를 사용하여 S3에서 파일 마운트 해제
  • 모형 시기의 감사 사건 제작
  • UDF 생성하기
  • 좋은 웹페이지 즐겨찾기