Inflearn brand logo image

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

오강현님의 프로필 이미지
오강현

작성한 질문수

실리콘밸리 데이터 리더가 알려주는 Airflow 기초

yfinance로 주식 데이터 읽어오기: 전체 업데이트 - 실습 포함

본문과 같은 메시지가 뜨면서, 어느 순간부터 계속 안되는데, 어떤 이유일까요 ㅠㅠ

작성

·

91

1

[2025-04-07T14:51:04.313+0000] {taskinstance.py:3310} ERROR - Task failed with exception

Traceback (most recent call last):

  File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 56, in load

    raise e

  File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 41, in load

    cur.execute(f"USE SCHEMA {schema};")

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/cursor.py", line 1087, in execute

    Error.errorhandler_wrapper(self.connection, self, error_class, errvalue)

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 284, in errorhandler_wrapper

    handed_over = Error.hand_to_other_handler(

                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 339, in hand_to_other_handler

    cursor.errorhandler(connection, cursor, error_class, error_value)

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 215, in default_errorhandler

    raise error_class(

snowflake.connector.errors.ProgrammingError: 002043 (02000): 01bb881b-0000-c602-0000-cde100062082: SQL compilation error:

Object does not exist, or operation cannot be performed.

 

During handling of the above exception, another exception occurred:

 

Traceback (most recent call last):

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 767, in executetask

    result = executecallable(context=context, **execute_callable_kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/taskinstance.py", line 733, in executecallable

    return ExecutionCallableRunner(

           ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run

    return self.func(*args, **kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper

    return func(self, args, *kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/decorators/base.py", line 266, in execute

    return_value = super().execute(context)

                   ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/models/baseoperator.py", line 406, in wrapper

    return func(self, args, *kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/python.py", line 238, in execute

    return_value = self.execute_callable()

                   ^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/operators/python.py", line 256, in execute_callable

    return runner.run(*self.op_args, **self.op_kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/operator_helpers.py", line 252, in run

    return self.func(*args, **kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/opt/airflow/dags/yfinance_to_snowflake_fullrefresh.py", line 62, in load

    cur.execute(f"REMOVE {table_stage}/{file_name}")

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/cursor.py", line 1087, in execute

    Error.errorhandler_wrapper(self.connection, self, error_class, errvalue)

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 284, in errorhandler_wrapper

    handed_over = Error.hand_to_other_handler(

                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 339, in hand_to_other_handler

    cursor.errorhandler(connection, cursor, error_class, error_value)

  File "/home/airflow/.local/lib/python3.12/site-packages/snowflake/connector/errors.py", line 215, in default_errorhandler

    raise error_class(

snowflake.connector.errors.ProgrammingError: 090105 (22000): 01bb881b-0000-c619-0000-cde10006306e: Cannot perform STAGE RM. This session does not have a current database. Call 'USE DATABASE', or use a qualified name.

image.pngimage.pngimage.pngimage.png

Snowflake 세션에서 데이터베이스 또는 스키마가 제대로 설정되지 않아 발생한 문제로 보인다는데;;; 뭔가 실행에 이상이 있는건지;;;;

답변 2

0

한기용님의 프로필 이미지
한기용
지식공유자

말씀하신 것처럼 마지막에 보면 아래와 같은 에러 메시지가 있습니다.

This session does not have a current database. Call 'USE DATABASE', or use a qualified name.

Snowflake Connection을 Airflow UI에서 설정할 때 database 항목을 설정했는지 한번 확인해보실래요? 거기에 dev라고 설정이 되어야 하는데 그게 빠지면서 현재 연결에 데이터베이스 설정이 안되는 것이 아닌가 싶습니다.

오강현님의 프로필 이미지
오강현
질문자

감사합니다,
해당 연결에 오타가 나있었습니다;;;;;

0

안녕하세요, 인프런 AI 인턴입니다. 오강현님.

Snowflake에서 SQL compilation error가 발생하는 경우는 주로 데이터베이스나 스키마가 제대로 설정되지 않은 경우 발생할 수 있습니다. 이 오류는 USE SCHEMA 명령이 실패하면서 발생한 것으로 보입니다. 이는 스노우플레이크 세션에서 현재 설정된 데이터베이스 또는 스키마가 없기 때문에 발생할 수 있습니다.

이 문제를 해결하기 위해 다음과 같이 확인해 보세요:

  1. 스노우플레이크 데이터베이스 및 스키마 설정:

    • DAG에서 Snowflake 연결을 설정할 때 초기 데이터베이스 및 스키마를 설정했는지 확인하세요.
    • 데이터베이스와 스키마를 명시적으로 설정하는 USE DATABASE 또는 USE SCHEMA 명령을 추가해 보세요.
  2. Airflow 연결 설정 확인:

    • Airflow에 설정된 Snowflake 연결이 올바른지, 특히 사용자 인증 및 접근 권한이 스노우플레이크의 리소스에 대한 올바른 권한을 가지고 있는지 확인하세요.
  3. 작업 흐름 내 SQL 실행:

    • 스노우플레이크에 대해 SQL 명령을 실행할 때 적절한 스코프 내에서 실행되고 있는지 확인하세요.
    • 스노우플레이크의 오브젝트 (데이터베이스, 스키마 등)이 존재하는지 확인이 필요합니다.
  4. Yfinance to Snowflake DAG 설정:

    • yfinance_to_snowflake_fullrefresh.py 스크립트 내부에서 table_stage의 정의가 올바른지 확인하세요. REMOVE {table_stage}/{file_name} 실행 시 문제 발생 가능성이 있습니다.

이미지를 통해 수행된 코드 참조 및 오류 로그를 보니, 세션이 데이터베이스 설정 없이 시작된 것 같습니다. 이를 해결하기 위해 정확한 데이터베이스 및 스키마 설정을 보장하는 것이 중요합니다.

기존에 비슷한 문제를 해결했던 사례를 참고하시며, 큰 도움이 될 수 있습니다:
- Connection Error 관련 문제 해결

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

오강현님의 프로필 이미지
오강현

작성한 질문수

질문하기