일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spark streaming
- s3
- Data Warehouse
- 데이터
- MySQL
- 데이터 엔지니어
- 스파크
- airflow
- 델타레이크
- 데이터 엔지니어링
- 대용량 처리
- Zookeeper
- 데이터 웨어하우스
- spark
- 카프카
- 컬럼 기반
- Schema Registry
- docker
- AWS
- Data Engineer
- 에어플로우
- Data engineering
- kafka rest api
- Parquet
- Redshift
- delta lake
- 레드시프트
- 스파크 스트리밍
- 카프카 구축
- kafka
- Today
- Total
목록MySQL (4)
데이터 엔지니어 기술 블로그
About 트리노는 빅데이터를 쿼리하기 위한 분산 SQL 쿼리 엔진이다. 기존에는 HDFS를 쿼리하도록 설계되었지만 지금은 그것에만 국한되지 않는다. Trino라는 이름은 Presto라는 이름을 리브랜딩 한 것으로 같은 쿼리 엔진이다. 트리노는 범용 데이터베이스가 아니기 때문에 MySQL과 같이 OLTP(Online Transaction Processing)가 아닌 OLAP(Online Analytics Processing)로 설계되었다. Concepts Server types 트리노는 두 가지의 서버 타입이 있다. 하나는 Coordinator로 다른 하나는 Worker이다. 이름과 같이 Coordinator는 구문 분석, 쿼리 계획, 작업자 노드 관리와 같은 일을 하고 Worker는 실제 작업을 실행하..
개요 에어플로우를 LocalExecutor를 사용해서 하나의 인스턴스에 실행시키고 있었다. 그러나 인스턴스에 문제가 생기면 Airflow도 동작하지 않을 수 있는 문제가 있고, 인프라가 커졌을 때 확장이 힘들어서 Worker를 분리해야했다. airflow에서 공식적으로 제공하는 docker-compose에서는 celery를 사용하며, 보통 airflow를 구축할 때 celery를 사용하는 것 같다. 이렇게 클러스터로 구축을 하게 되면 리소스가 필요할 때 worker의 갯수만 늘리면 되고, 리소스가 필요 없을 때 불필요하게 낭비하지 않고 worker의 갯수를 줄이면 되기 때문에 좋다. 구축할 때는 AWS ECS, AWS EFS 환경에서 구축했다. 구축 과정 Dask Cluster를 활용하여 구축 시도 가장..
키가 존재하면 업데이트하고, 존재하지 않으면 삽입하는 동작이 필요했다. 하지만 대용량의 요청을 보내면서 무리를 덜 줄 방법을 생각하다가 스택오버플로우에 물어봤는데 금방 답변을 해주었다. 질문했던 내용을 자세히 보려면 이 링크를 참조하면 된다. 기존의 방식 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 --------..
개요 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 ..