강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của okipedia
okipedia

câu hỏi đã được viết

Những điều cơ bản về Airflow được chia sẻ bởi nhà lãnh đạo dữ liệu tại Thung lũng Silicon

Đọc dữ liệu chứng khoán với yfinance: Cập nhật toàn bộ - Bao gồm thực hành

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

Viết

·

201

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

pythonsqlairflowsnowflake

Câu trả lời 2

0

keeyonghan님의 프로필 이미지
keeyonghan
Người chia sẻ kiến thức

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

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

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

okipedia님의 프로필 이미지
okipedia
Người đặt câu hỏi

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

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 관련 문제 해결

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

Hình ảnh hồ sơ của okipedia
okipedia

câu hỏi đã được viết

Đặt câu hỏi