>source

Composer 폴더/디렉토리 구조에 대해 권장하는 사항이 있습니까? 구조화 방식은 내부 Airflow 서버가 현재 사용하고 있는 방식과 다릅니다.

Google 문서 기반: https://cloud.google.com/composer/docs/concepts/cloud-storage:

  • 플러그인/: 사용자 정의 플러그인, 연산자, 후크를 저장합니다.
  • dags/: dags 및 웹 서버가 dag를 구문 분석하는 데 필요한 모든 데이터를 저장합니다.
  • 데이터/: 작업이 생성하고 사용하는 데이터를 저장합니다.

다음은 내 dags 폴더를 구성하는 방법의 예입니다.

이전에는 key.json 파일을데이터/폴더에 있는 키를 사용하여 dags를 구문 분석할 수 없습니다.데이터/폴더. 그래서 지금은 모든 지원 파일을닥스/폴더.

dag에 대해 지원되는 파일(sql, 키, 스키마)을닥스/폴더? 사용하기 좋은 유스 케이스가 있습니까?데이터/폴더?

다양한 dags, 플러그인 및 지원 파일이 있는 여러 프로젝트를 지원하기 위해 composer 폴더를 구성하는 방법에 대한 예를 보여주시면 도움이 될 것입니다.

현재 전체 Airflow 폴더에 대해 1개의 Github만 있습니다. 프로젝트마다 별도의 자식을 갖는 것이 더 낫습니까?

감사합니다!

  • 답변 # 1

    첫 번째 질문:

    key.json 파일을 data/폴더에 넣고 data/폴더의 키를 사용하여 dags를 구문 분석할 수 없는 문제가 있었습니다. 그래서 지금은 모든 지원 파일을 dags/폴더에 넣는 경향이 있습니다.

    data/또는 plugins/폴더에서 이러한 파일을 읽으려면 올바른 구성만 설정하면 됩니다. 컴포저에서 airflow를 실행하는 것과 로컬에서 실행하는 것 사이의 파일 시스템의 차이점은 이러한 폴더의 경로가 변경된다는 것입니다.

    이를 돕기 위해 다른 문서에서 이러한 폴더의 올바른 경로를 찾는 솔루션을 설명합니다. 나는 게시물에서 내 의견을 인용합니다.

    "내가 입력한 경로가 작동하지 않으면 Cloud Composer 인스턴스의 경로를 찾아야 합니다. 찾기가 어렵지 않습니다. 모든 DAG에서 간단히 sys.path 변수를 기록하고 볼 수 있습니다. 경로가 인쇄되었습니다."

    두 번째 질문:

    dag에 대해 지원되는 파일(sql, 키, 스키마)을 dags/폴더에 넣으면 스케줄러의 성능이 영향을 받습니까? data/폴더를 사용하는 좋은 사용 사례가 있습니까?

    네, 적어도 스케줄러는 이것이 파이썬 스크립트인지 아닌지 확인해야 합니다. 그리 많지는 않지만 임팩트가 있습니다.

    데이터 또는 플러그인 폴더에서 읽는 문제를 해결하는 경우 이러한 파일을 해당 폴더로 이동해야 합니다.

    세 번째 질문:

    현재 전체 Airflow 폴더에 대해 1개의 Github만 있습니다. 프로젝트마다 별도의 자식을 갖는 것이 더 낫습니까?

    다른 프로젝트에 다른 pypi 패키지가 필요한 경우 각 패키지와 다른 공기 흐름 환경에 대해 별도의 저장소를 갖는 것이 이상적입니다. 그 이유는 pypi 패키지 종속성 오류에 빠질 위험을 활용하고 빌드 시간을 줄이기 때문입니다.

    반면에 프로젝트에서 동일한 pypi 패키지를 사용할 경우 모든 프로젝트를 다른 리포지토리에 보관하는 것이 더 쉬워질 때까지 모든 것을 단일 리포지토리에 보관하는 것이 좋습니다. 그러나 단일 리포지토리에 모든 것이 있으면 배포가 더 쉬워집니다.

  • 답변 # 2

    dags 폴더에 있는 파일이.py파일; 그러나 복사를 통해 동기화되는 플러그인 폴더에 파일을 배치할 수도 있습니다.

    최상위 폴더를 사용하여 프로젝트(예:dags/projectA/dagA.py) 또는 프로젝트가 충분히 큰 경우 별도의 환경을 사용할 수도 있습니다.

  • 이전 javascript : PHP base_url 함수에 대한 변수 값
  • 다음 qt : 'cmd' 명령을 사용하는 QProcess로 인해 명령줄 창이 나타나지 않음