강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박찬웅님의 프로필 이미지
박찬웅

작성한 질문수

실리콘밸리 엔지니어와 함께하는 DBT

📂 실습 자료 & 코드 안내

dbt run 이후 에러 발생(customer_status 없음 )

해결된 질문

작성

·

13

0

$ dbt run
14:24:31  Running with dbt=1.11.2
14:24:31  Registered adapter: postgres=1.10.0
14:24:32  Found 11 models, 37 data tests, 1 seed, 2 snapshots, 6 sources, 468 macros
14:24:32
14:24:32  Concurrency: 1 threads (target='dev')
14:24:32
14:24:32  1 of 5 START sql table model dvdrental.dim_customer_status ..................... [RUN]
14:24:32  1 of 5 ERROR creating sql table model dvdrental.dim_customer_status ............ [ERROR in 0.07s]
14:24:32  2 of 5 START sql table model dvdrental.dim_customer ............................ [RUN]
14:24:33  2 of 5 OK created sql table model dvdrental.dim_customer ....................... [SELECT 599 in 0.06s]
14:24:33  3 of 5 START sql table model dvdrental.dim_film ................................ [RUN]
14:24:33  3 of 5 OK created sql table model dvdrental.dim_film ........................... [SELECT 1000 in 0.06s]
14:24:33  4 of 5 START sql view model dvdrental.int_rentals_enriched ..................... [RUN]
14:24:33  4 of 5 OK created sql view model dvdrental.int_rentals_enriched ................ [CREATE VIEW in 0.06s]
14:24:33  5 of 5 START sql incremental model dvdrental.fct_payments ...................... [RUN]
14:24:33  Running incrementally with lookback interval: 3 days
14:24:33  5 of 5 OK created sql incremental model dvdrental.fct_payments ................. [INSERT 0 182 in 0.11s]
14:24:33
14:24:33  Finished running 1 incremental model, 3 table models, 1 view model in 0 hours 0 minutes and 0.69 seconds (0.69s).
14:24:33
14:24:33  Completed with 1 error, 0 partial successes, and 0 warnings:
14:24:33
14:24:33  Failure in model dim_customer_status (models\marts\dim_customer_status.sql)
14:24:33    Database Error in model dim_customer_status (models\marts\dim_customer_status.sql)
  relation "dvdrental.customer_status" does not exist
  LINE 34: left join "dvdrental"."dvdrental"."customer_status" s
                     ^
  compiled code at target\run\learn_dbt\models\marts\dim_customer_status.sql
14:24:33
14:24:33    compiled code at target\compiled\learn_dbt\models\marts\dim_customer_status.sql
14:24:33
14:24:33  Done. PASS=4 WARN=0 ERROR=1 SKIP=0 NO-OP=0 TOTAL=5

dbt run 돌리고, 현재 위와 같은 에러가 발생하고 있습니다. customer_stauts에 대한 테이블이 없어서 에러가 발생하고 있는 데, 제공된 자료에서는 customer_status를 확인할 수가 없습니다.

답변 3

0

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 박찬웅님,

에러 메시지(relation "dvdrental.customer_status" does not exist)를 보면 dim_customer_status 모델에서 customer_status 테이블을 조인하려고 하는데, 현재 DB에 해당 테이블이 없어 발생한 문제입니다.

이 테이블은 강의 15. Seeds(엑셀/CSV를 dbt에서 관리) 파트에서 CSV(seed)로 생성되는 테이블과 연관되어 있습니다.

 

우선 아래 순서로 한 번 진행해 보시겠어요?

dbt seed 실행

dbt run --select dim_customer_status 재실행

(확인) DB에서 dvdrental.customer_status 존재 여부 확인

말씀 주신 것처럼 제공 자료에서 customer_status(seed 파일)가 보이지 않는다면, 제가 강의 자료 패키징 과정에서 누락/경로 문제가 있었을 가능성이 큽니다. 확인해서 업데이트 해 드리도록 하겠습니다.

불편을 드려 정말 죄송합니다.

0

박찬웅님의 프로필 이미지
박찬웅
질문자

실제로 dim_customer_status.sql 파일을 잠시 제외해서 dbt run을 실행하니깐 되는 것으로 확인했습니다.
혹시나 자료를 그대로 다운받아서 확인하신 분들은, learn-dbt-main\dbt-playground\learn_dbt\models\marts 안에 있는 'dim_customer_status.sql'을 잠시 삭제해두고 실행해보시길 바랍니다.

0

안녕하세요, 인프런 AI 인턴입니다. 박찬웅님.

dbt run 실행 중 customer_status 테이블이 없다는 오류를 겪고 계시는군요. 이 에러는 dim_customer_status.sql 모델에서 사용하는 customer_status 테이블이 데이터베이스에 존재하지 않을 때 발생합니다. 해결 방법은 다음과 같습니다:

  1. 테이블 이름 및 경로 확인: dim_customer_status.sql 속의 쿼리에서 조인하는 customer_status 테이블이 정확한 테이블 이름과 경로를 사용하고 있는지 확인하세요. 특히 dvdrental.customer_status 혹은 public.customer_status로 명시해야 할 수 있습니다.

  2. 테이블 생성 확인: 해당 테이블이 실제로 필요한 테이블이라면, 이를 데이터베이스에 생성해야 합니다.

    • dbt의 외부 소스 설정 기능을 사용하여 테이블을 정의하는 방법(source)을 참고하세요.
    • 데이터베이스 관리자에게 문의하여 이 테이블을 만들어달라고 요청할 수도 있습니다.
  3. Mock 데이터 추가: 임시로 테스트용 테이블을 생성하여 코드를 테스트할 수도 있습니다.

    CREATE TABLE dvdrental.customer_status (
       id SERIAL PRIMARY KEY,
       status_name VARCHAR(50)
    );
    
  4. Omitting the Model: 만약 이 테이블이 필요 없는 경우, dim_customer_status.sql이 사용되지 않도록 DBT 프로젝트 파일에서 해당 모델을 제외하거나 주석 처리할 수 있습니다.

다른 유사한 문제 해결의 예시를 보려면 다음 게시물을 참고하세요:
- dbt source 테이블 누락 에러는 dbt 소스 정의에서 테이블이 누락된 경우에 대한 해결책을 제공합니다.
- Apache Airflow PostgreSQL 연결 에러에서는 연결 관련 오류를 다루고 있습니다.

위의 해결방법들이 문제를 해결하는 데 도움이 되길 바랍니다. 이후에도 문제가 지속되거나 다른 의문이 있으시면 추가 질문 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박찬웅님의 프로필 이미지
박찬웅

작성한 질문수

질문하기