MySQL(4)
-
[Trino] 트리노(프레스토) 기본 개념 이해 및 사용하기
About 트리노는 빅데이터를 쿼리하기 위한 분산 SQL 쿼리 엔진이다. 기존에는 HDFS를 쿼리하도록 설계되었지만 지금은 그것에만 국한되지 않는다. Trino라는 이름은 Presto라는 이름을 리브랜딩 한 것으로 같은 쿼리 엔진이다. 트리노는 범용 데이터베이스가 아니기 때문에 MySQL과 같이 OLTP(Online Transaction Processing)가 아닌 OLAP(Online Analytics Processing)로 설계되었다. Concepts Server types 트리노는 두 가지의 서버 타입이 있다. 하나는 Coordinator로 다른 하나는 Worker이다. 이름과 같이 Coordinator는 구문 분석, 쿼리 계획, 작업자 노드 관리와 같은 일을 하고 Worker는 실제 작업을 실행하..
2022.02.04 -
[Airflow] Airflow + Celery Executor 구축(Docker)
개요 에어플로우를 LocalExecutor를 사용해서 하나의 인스턴스에 실행시키고 있었다. 그러나 인스턴스에 문제가 생기면 Airflow도 동작하지 않을 수 있는 문제가 있고, 인프라가 커졌을 때 확장이 힘들어서 Worker를 분리해야했다. airflow에서 공식적으로 제공하는 docker-compose에서는 celery를 사용하며, 보통 airflow를 구축할 때 celery를 사용하는 것 같다. 이렇게 클러스터로 구축을 하게 되면 리소스가 필요할 때 worker의 갯수만 늘리면 되고, 리소스가 필요 없을 때 불필요하게 낭비하지 않고 worker의 갯수를 줄이면 되기 때문에 좋다. 구축할 때는 AWS ECS, AWS EFS 환경에서 구축했다. 구축 과정 Dask Cluster를 활용하여 구축 시도 가장..
2021.10.15 -
[MySQL] 여러개의 UPSERT(UPADTE+ INSERT) 요청 하나로 합치기
키가 존재하면 업데이트하고, 존재하지 않으면 삽입하는 동작이 필요했다. 하지만 대용량의 요청을 보내면서 무리를 덜 줄 방법을 생각하다가 스택오버플로우에 물어봤는데 금방 답변을 해주었다. 질문했던 내용을 자세히 보려면 이 링크를 참조하면 된다. 기존의 방식 1. 1번 키에 prop_a, prop_b에 데이터 삽입 INSERT INTO example_table (id, prop_a, prop_b) VALUES (1,1,7) ON DUPLICATE KEY UPDATE prop_a=1,prop_b=7; ------------------------------------------------------------- id(primary key), prop_a, prop_b, prop_c 1 1 7 0 --------..
2021.06.24 -
[MYSQL] Docker MYSQL 로그에서 "mbind: Operation not permitted" 이슈 해결방법
개요 mysql은 도커 컨테이너로 올라가있는 상태이고, 로컬에 볼륨이 공유된 상태로 사용하고 있었다. mysql에서 로그를 확인해보니 아래와 같은 로그를 확인할 수 있었다. 해결 방법 mbind는 리눅스 명령어로 메모리 범위에 대한 메모리 정책 설정을 뜻한다. mbind를 사용하는 명령어에서 권한이 없는 문제로 예상된다. 도커 공식 문서에 보면 아래와 같은 내용이 있다. --cap-add=sys_nice Grants the container the CAP_SYS_NICE capability, which allows the container to raise process nice values, set real-time scheduling policies, set CPU affinity, and other ..
2021.06.07