2025/07 12

[Airflow] dag_id 중복 확인하기

개요Airflow에서 dag_id는 유일해야 하기 때문에 dag_id에 중복이 발생하면 의도하지 않게 동작할 수 있다. 하지만 Dag의 오류 사항을 확인할 수 있는 Web UI에서는 dag_id에 중복 발생 여부를 확인할 수 없어 디버깅하기 조금 힘든데, cli를 활용하면 바로 확인할 수 있는 것을 알게 되어 적어둔다. 확인 방법dag_id 중복 시 발생하는 예외는 AirflowDagDuplicatedIdException이다. 즉, 2024.11.30-[Airflow] Dag Import Error 확인하기에서 확인한 airflow cli의 list-import-errors 명령어를 사용하면 dag_id의 중복 발생 여부를 확인할 수 있다. 참고로 Github에서 명령어의 동작 방식을 확인해 보니 DA..

Apache Airflow 2025.07.16

[Azure] Azure Database for MySQL 개요

개요2025.07.08-[Azure] 데이터베이스 서비스 종류와 구분에서 Azure 데이터베이스에 대해 대략적으로 살펴보았는데, 이번 글에서는 Azure가 MySQL 데이터베이스 엔진을 제공하는 서비스인 Azure Database for MySQL에 대해서 알아보려고 한다.하나의 제품에서 다양한 데이터베이스 엔진을 지원하는 AWS RDS와 다르게, Azure의 경우에는 데이터베이스 엔진마다 별개의 제품을 제공하고 있다. DBaaSDBaaS (Database as a Service)란 가상 머신이나 인프라를 관리할 필요 없이 데이터베이스를 설정하고 접근할 수 있도록 하는 서비스이다. PaaS(Platfrom as a Service)에 한 범주에 속하며, Azure Database for MySQL는 DB..

Azure 2025.07.15

[Python] SQLAlchemy - UPSERT 수행하기

개요이전 글에서 SQLAlchemy를 사용해 테이블 생성과 데이터 삽입, 갱신, 삭제 등의 기본적인 데이터베이스 작업을 수행하는 방법을 알아보았다.이번 글에서는 UPSERT를 구현하는 방법을 알아보려고 한다. UPSERT의 경우에는 데이터베이스 엔진마다 쿼리문이 조금씩 다른데 이 글에서는 MySQL을 기준으로 적어두려고 한다. Dialectsdialect란 SQLAlchemy가 다양한 DBAPI를 구현하고 데이터베이스와 통신하는 데 사용하는 시스템이다. 이를 위해서는 적절한 DBAPI 드라이버가 설치되어 있어야 한다.SQLAlchemy는 PostgreSQL, MySQL, MariaDB, SQLite, Oracle, Microsoft SQL Server에 대한 dialect를 포함하고 있다. 이외의 데이..

Python 2025.07.14

[Python] SQLAlchemy - DELETE 문

개요2025.07.02-[Python] SQLAlchemy - UPDATE 문 에서 SQLAlchemy를 사용해 테이블에 데이터를 UPDATE 하는 방법을 알아보았다. 이번 글에서는 테이블에 있는 데이터를 삭제하는 방법을 알아본다. DELETEinsert, update를 수행할 때와 마찬가지로 deleted() 함수로 DELETE 문을 나타내는 객체를 생성하여 작업을 수행할 수 있다. 기본적인 사용 방법은 아래와 같다.from sqlalchemy import deletestmt = delete(user_table).where(user_table.c.name == "patrick")print(stmt) 영향받는 행의 수 확인DELETE 수행에 영향을 받는 행의 수를 확인하고 싶을 때는 쿼리를 수행한 결..

Python 2025.07.11

[Azure] 데이터베이스 서비스 종류와 구분

개요기존에 Azure 관련해서 VM과 오브젝트 스토리지 서비스에 대해서는 간단히 알아보았는데, 데이터베이스에 대해서는 아직 공부한 바가 없어서 학습을 시도했는데, 제품도 많고 종류도 여럿이고 용어가 다소 헷갈리는 지점이 있어서 정리해보려고 한다. Azure 데이터베이스Azure 데이터베이스는 Azure 클라우드에서 제공하는 다앙햔 데이터베이스 서비스를 통칭한다. SQL Database, Cosmos DB, MySQL, PostgreSQL 등 다양한 데이터베이스 엔진을 지원하며 자동 백업, 고가용성, 강력한 보안 기능을 제공하여 데이터 안정성과 규정 준수를 보장한다. 또한 기업의 필요에 따라 확장과 축소예 용이하다.수직 확장 : 할당된 리소스를 늘려 데이터베이스를 수직적으로 확장할 수 있다. 성능 계층을..

Azure 2025.07.10

[Linux] Vim - 범위 삭제하기

개요Vim을 사용해서 다량의 행을 삭제해야 하는데, 한 줄씩 삭제하고 있자니 끝이 보이지 않아 범위를 삭제할 수 있는 몇 가지 방법을 정리해 둔다. 현재 줄 포함 여러 행 삭제Vim에서 dd 명령은 현재 커서가 위치한 행 한 줄을 삭제하는 명령어이다. 여 dd 명령어 앞에 삭제할 줄의 수를 추가하여 입력하면 현재 행을 포함하여 입력한 줄의 수만큼의 행을 삭제한다.[n]dd예로 들어 아래와 같은 텍스트가 있다고 하자.2dd이 상태에서 2줄을 삭제하겠다는 명령어를 입력하면 1, 2 행이 삭제된다. start ~ end 삭제삭제한 범위를 직접 지정하고 싶을 때는 아래 명령어를 사용한다.:[start],[end]d 예시 텍스트 파일에서 3행부터 5행까지 삭제한다고 하면 다음과 같이 입력하고:3,5d그 결과는..

Linux 2025.07.09

[MySQL] IN 조건 순서대로 데이터 조회하기

개요데이터베이스 테이블에 대해 여러 조건에 맞는 행을 조회할 때 IN 절을 곧잘 사용하게 된다. 데이터를 조회하면 기본적으로 데이터를 조회하는 쿼리에서 사용하는 INDEX의 순서로 정렬되며, 필요한 경우에는 명시적으로 ORDER BY를 사용해 정렬할 기준을 명시해 데이터를 확인한다.하지만 IN 절에 전달한 순서대로 데이터를 확인하고 싶을 때는 어떻게 해야 할까? 방법을 적어둔다. ORDER BY FIELDORDER BY 절에서 FIELD를 사용하면 특정한 값에 대한 정렬 우선순위를 지정할 수 있다.SELECT column1, column2, ...FROM your_tableORDER BY FIELD(column_name, value1, value2, ...); 예로 들어 아래와 같은 movie 테이블이..

Database 2025.07.08

[Python] SQLAlchemy - UPDATE 문

개요2025.06.24-[Python] SQLAlchemy - INSERT 하기에서 SQLAlchemy를 사용해 테이블에 데이터를 INSERT 하는 방법을 알아보았다. 이번 글에서는 테이블에 있는 데이터를 갱신하는 방법을 알아본다. UPDATEupdate는 insert와 유사한 방식으로 수행할 수 있다. update 함수를 사용해 UPDATE 문을 나타내는 새로운 객체를 생성한 뒤, where() 함수를 사용해 데이터를 갱신할 조건을 지정하고 values() 함수를 사용해 갱신한 값을 지정한다. 아래 예시 코드는 UPDATE를 수행하는 기본적인 방법이다.from sqlalchemy import updatestmt = ( update(user_table) .where(user_table.c...

Python 2025.07.07

[MySQL] WHERE ~ IN - 다중 컬럼 지정

개요데이터베이스에서 데이터를 조회하다 보면 여러 컬럼에 대한 조건을 OR 조건으로 연달아 나열해야 하는 경우가 있다. SELECT * FROM table1 WHERE (column1 = value1 AND column2 = value2) OR (column1 = value3 AND column2 = value4) OR (column1 = value5 AND column2 = value6);나열할 조건이 많아질수록 쿼리도 길어지고 보기 어려운데, IN 조건을 활용하면 조금 더 가독성 있는 쿼리를 작성할 수 있다.문법을 적어둔다. 다중컬럼 IN 조건일반적으로 단일 컬럼을 예로 들은 문서가 많아서 몰랐는데, 조건절에 사용할 컬럼을 소괄호로 묶어서 나열하고, 값도 동일하게 소괄호로 묶어서 ..

Database 2025.07.04

[Python] SQLAlchemy - 조건절 지정하기

개요2025.06.25-[Python] SQLAlchemy - SELECT 하기에서 데이터베이스 테이블의 데이터를 조회하는 방법을 알아보았다. 이번 글에서는 조건에 맞는 데이터를 필터링하는 WHERE 절을 사용하는 방법을 적어둔다. WHEREWHERE 절은 Select.where() 메서드에 원하는 조건을 지정하여 생성할 수 있다.from sqlalchemy import selectstmt = select(user_table).where(user_table.c.name == "spongebob")print(stmt.compile()) ANDAND로 연결된 조건절을 생성할 때는 Select.where()을 필요한 만큼 호출한다.from sqlalchemy import selectstmt = (selec..

Python 2025.07.03
1 2