전체 글110 Airflow에서 custom timetable로 자유롭게 스케쥴 설정하기 💡 Airflow version 2.4 이상부터 schedule parameter가 제공된다. Airflow 스케쥴 설정에 주로 사용하는 cron-based 스케쥴로는 한계가 존재하는데, 예를 들어 아래와 같은 상황이 있다.요일마다 다른 시간에 실행하도록 하기 (e.g. 월요일 4PM, 수요일 2PM)daily 자정 스케쥴이지만 주말은 제외 - 크론표현식으로 스케쥴은 가능하지만 월요일 Dag run에서는 월요일 데이터가 아닌 토/일/월 데이터가 수집됨뷸규칙적인 간격으로 여러번 실행위와 같은 특수한 케이스들을 다루기 위해서는 timetable을 이용하면 된다.TimetablesTimetables 기능은 크론표현식과 timedelta 형태의 스케쥴의 한계를 극복하기위해 Airflow 2.2에 도입되었다.모.. 2024. 7. 28. Redshift Meterialized View 생성/삭제/리프레시 구체화 된 뷰 생성CREATE MATERIALIZED VIEW test_mv BACKUP YES -- 스냅샷 저장 여부 (default=yes) DISTSTYLE KEY -- 분산 스타일 (default=EVEN). 이 외에 SORTKEY 지정가능 DISTKEY (id) AUTO REFRESH NO -- 자동 새로고침 여부(default=NO) AS SELECT t1.id, t2.name FROM table_one t1 LEFT JOIN table_two t2 ON t1.join_id = t2.id구체화된 뷰 삭제DROP MATERIALIZED VIEW test_mv;구체화된 뷰 새로고침뷰를 생성할때 자동새로고침을 설정하지 않았다면, 아래 명령어를 이용해서 수동으로 새로고침 해주어야 한다.REFRESH .. 2024. 7. 14. pyiceberg와 Glue Catalog를 이용한 Apache Iceberg 사용 필요 라이브러리 설치pip 업그레이드pip install --upgrade pippyiceberg와 필요 의존성 설치 - 아래 예제에서는 catalog로 glue를, 저장소로 s3를 사용할 예정이므로 glue, s3fs 를 설치pip install "pyiceberg[glue,s3fs]"카탈로그 설정pyiceberg 사용사례가 검색했을때 많지 않았고, 그 중에서 GlueCatalog를 사용해서 카탈로그 관리를 하는 예시를 찾기가 어려웠다.다른 카탈로그나 조금 다른 경우의 사용사례를 찾아봤을때 .pyiceber.yaml 파일을 이용하는 방식을 보고 적용해 보았는데, 내 경우에는 잘 작동하지 않는 듯 하다.그래서 여러번의 시도를 한 끝에 아래의 방법으로 잘 동작하는 것을 알아냈다.from pyiceberg... 2024. 6. 30. Amazon QuickSight에서 RDS/Redshift에 Private 연결 QuickSight에서는 RDS/Athena/Redshift 등을 통한 여러가지 소스데이터와의 통합을 지원한다.그 중 RDS나 Redshift 같이 인스턴스를 띄워서 사용하는 데이터 소스들이 있는데, 만약 이 데이터베이스가 프라이빗 서브넷에 배치되어 있고 퍼블릭 접근이 불가능 하도록 설정되어 있다면, 추가적으로 vpc connection을 생성해서 접근해야 한다.PrerequisitesQuickSight를 설정하려는 사용자가 Quicksight의 관리자여야 한다. Quicksight에 기본적으로 설정된 Admin인 경우에는 문제없이 진행 가능하다. 만약, custom permission을 사용한다면, 아래의 권한들이 포함되어 있는지 확인해야 한다."quicksight:ListVPCConnections"".. 2024. 6. 16. 이전 1 2 3 4 5 6 7 ··· 28 다음