dbt를 Materialize 및 Redpanda와 함께 사용하는 방법
소개하다.
이것은 Materialize을 사용한 독립된 시연이다.
이 프레젠테이션에서는 Materialize와 함께 dbt을 사용하는 방법을 보여 줍니다.
이 프레젠테이션에 대해 우리는 사용자가 프레젠테이션 사이트에 남긴 평론을 감시하고dbt를 사용하여 우리의 업무 논리를 모델링할 것이다. 예를 들어 좋지 않은 평론을 남긴 중요한 사용자 목록을 얻는 것이다.그 다음에 우리는 이러한 데이터를 어떻게 사용하여 표시된 사용자를 잠재적으로 접촉하고 우리의 사이트 체험을 개선하는지 탐색할 것이다.
선결 조건
시작하기 전에 Docker 및 Docker Compose가 설치되어 있는지 확인해야 합니다.
Docker를 설치하려면 다음 절차를 따르십시오.
또한 dbt
(v0.18.1+)이 설치되어 있는지 확인해야 합니다.
너는 이 GitHub repository here에서 이 프레젠테이션 파일을 찾을 수 있다.
개술
위의 그림과 같이 다음과 같은 구성 요소가 있습니다.
As a side note here, you would be perfectly fine using Kafka instead of Redpanda. I just like the simplicity that Redpanda brings to the table, as you can run a single Redpanda instance instead of all of the Kafka components.
실행 프레젠테이션
먼저 클론 저장소부터 시작합니다.
git clone https://github.com/bobbyiliev/materialize-tutorials.git
그런 다음 다음 다음 디렉토리에 액세스할 수 있습니다.cd materialize-tutorials/mz-user-reviews-dbt-demo
Redpanda 컨테이너를 실행하는 것부터 시작하겠습니다.docker-compose up -d redpanda
이미지를 구성하려면 다음과 같이 하십시오.docker-compose build
그런 다음 다른 Docker 이미지를 모두 드래그합니다.docker-compose pull
마지막으로 모든 서비스를 시작합니다.docker-compose up -d
Materialize CLI를 시작하려면 다음 명령을 실행합니다.docker-compose run mzcli
This is just a shortcut to a Docker container with a compatible CLI pre-installed; if you already have
psql
installed, you could instead connect to the running Materialize instance using that:psql -U materialize -h localhost -p 6875 materialize
.
프레젠테이션이 실행되면 시뮬레이션 서비스가 논평과 사용자를 생성하기 시작합니다.
dbt 설정 준비
먼저
dbt-materialize
플러그인을 설치해야 합니다.python3 -m venv dbt-venv
source dbt-venv/bin/activate
pip install dbt-materialize
그런 다음 가장 좋아하는 텍스트 편집기를 사용하여 ~/.dbt/project.yml
파일을 열고 다음 줄을 추가합니다.user_reviews:
outputs:
dev:
type: materialize
threads: 1
host: localhost
port: 6875
user: materialize
pass: pass
dbname: materialize
schema: analytics
target: dev
그런 다음 Materialize 컨테이너와 제대로 연결되었는지 확인하려면 다음을 실행하십시오.dbt debug
마지막으로, 우리는 dbt를 사용하여 3개의 Redpanda/Kafka 테마 위에 물적 보기를 만들 수 있습니다.이렇게 하려면 다음 dbt 명령만 실행하면 됩니다.dbt run
이 명령은 프로젝트 models
디렉토리에 있는 모델 파일에서 실행 가능한 SQL을 생성하고 대상 데이터베이스에서 SQL을 실행하여 물적 보기를 만듭니다.Note: If you installed
dbt-materialize
in a virtual environment, make sure it's activated. If you don't have it installed, please revisit the setup above.
마지막으로 dbt 테스트를 실행할 수 있습니다.
dbt test
물적 보기와 원본을 만들었는지 확인하기
축하합니다!dbt를 사용하여 Materialize에 물적 보기를 만들었습니다.
다음 문을 실행하여
reviews
소스의 열을 확인할 수 있습니다.SHOW COLUMNS FROM analytics.reviews_raw;
Materialize가 Redpanda registry에서 메시지 모드를 추출할 때 각 속성에 사용할 열 유형을 알 수 있습니다. name | nullable | type
---------------+----------+-----------
id | f | bigint
user_id | t | bigint
review_text | t | text
review_rating | t | integer
created_at | t | text
updated_at | t | timestamp
Materialize에 연결된 psql 셸에서 뷰가 생성되었는지 확인할 수 있습니다.SHOW VIEWS FROM analytics;
출력: name
--------------------
badreviews
vipusers
vipusersbadreviews
또한 다음 쿼리를 실행하여 Redpanda에서 데이터를 추출했는지 확인할 수 있습니다.SELECT COUNT(*) FROM analytics.vipusersbadreviews;
쿼리를 실행할 때마다 결과가 달라지는 것을 볼 수 있습니다. 이는 데이터가 dbt run
을 다시 실행할 필요가 없이 증량으로 업데이트된다는 것을 의미합니다.dbt 문서 생성
물화 보기를 만들면dbt 문서를 만들 수 있습니다.이렇게 하려면 다음 명령을 실행합니다.
dbt docs generate
그런 다음 다음 다음 명령을 실행하여 문서에 서비스를 제공할 수 있습니다.dbt docs serve
그런 다음 문서를 보려면 http://localhost:8080/dbt/docs/으로 전화하십시오.거기에 생성된 모든 보기의 목록이 있습니다. 그 중 하나를 누르면 생성된 SQL을 볼 수 있습니다.뷰 간의 관계를 보여주는 괜찮은 계보도 있습니다.메타 데이터베이스
Metabase 인스턴스를 액세스하려면 로컬에서 실행 중인 경우
http://localhost:3030
을, 서버에서 실행 중인 경우 http://your_server_ip:3030
을 참조하십시오.그리고 다음 순서에 따라 원 데이터베이스 설정을 완성한다.Materialize는 공식 PostgreSQL 커넥터를 Metabase와 통합합니다.Materialize 데이터베이스에 연결하려면 다음 연결 속성을 지정합니다.
마당
가치관
데이터베이스
PostgreSQL
성함
사용자 의견
주인.
구체화
항구.
6875
데이터베이스 이름
구체화
데이터베이스 사용자 이름
구체화
데이터베이스 암호
비우다
준비가 되면 표준 PostgreSQL 데이터베이스를 사용하는 것처럼 데이터를 시각화할 수 있습니다.
데모 중지
모든 서비스를 중지하려면 다음 명령을 실행합니다.
docker-compose down
결론
보시다시피, 이것은Materialize와dbt를 어떻게 결합하여 사용하는지 간단한 예입니다.Materialize를 사용하여 다양한 소스에서 데이터를 받아서 다양한 목적지로 전송할 수 있습니다.
dbt 및 Materialize에 대한 자세한 내용은 다음 문서를 참조하십시오.
유용한 리소스:
CREATE SOURCE
CREATE MATERIALIZED VIEW
SELECT
Reference
이 문제에 관하여(dbt를 Materialize 및 Redpanda와 함께 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bobbyiliev/how-to-use-dbt-with-materialize-and-redpanda-47b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)