일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Catalyst Optimizer
- 서버간 복사
- Databricks
- 프로그래머스힙
- 실행엔진
- EMR 구조
- ORACLE MSSQL차이
- 카프카
- 문맥교환
- 하둡2.0
- 빌드도구
- lazy evaluation
- kafka 설치
- 스파크
- 프로그래머스 큰 수 만들기
- 런타임데이터영역
- ORACLE문법
- AWS Crawler
- 데이터베이스복사
- Spark
- 프로그래머스
- 하둡1.0
- 데이터엔지니어링
- Spark 최적화
- freenom
- 하둡
- 데이터파이프라인
- 데이터 수집
- 지연연산
- 하둡에코시스템
- Today
- Total
띵유로그
[데이터파이프라인] Presto - Mysql 연동 본문
지난 포스팅에서는 프레스토를 알아봤는데요, 이번 포스팅에서는 Mysql 과 연동해보겠습니다.
Presto에 대한 기본적인 내용부터 각종 DBMS와의 연결방법은
https://prestodb.io/docs/current/overview.html에도 자세히 나와있으니 참고하면 좋을 것같습니다.
먼저, Emr 생성시 Presto를 선택해주고 띄운후 접속해줍니다.
운영중인 mysql 은 이미 있고, 인바운드, 아웃바운드 규칙은 이미 설정되어있다고 가정합니다!
/etc/presto/conf/catalog 폴더에 가면 기본적으로 hive.properties 파일만 존재하는것을 볼 수 있습니다. (awsdatacatalog.properties는 hive.properties 파일로의 링크임)
1. 카탈로그 추가 (mysql.properties 파일 추가)
우리는 mysql 카탈로그를 추가해야하니, 이 경로에 mysql.propererties를 만들어줍니다.
2. config.properties 수정
상위 경로로 이동해서(/etc/presto/conf) config.properties를 다음과 같이 수정합니다.
1) node-scheduler.include-coordinator를 false -> true
2) datasources 에 카탈로그 명을 추가합니다. 우리는 mysql.properties 를 추가했기때문에 mysql을 추가해줍니다.
참고로 config.properties 의 속성에 대해서 설명도 아래에 적어둡니다.
https://teradata.github.io/presto/docs/141t/configuration/configuration.html 에서 참고하여 번역했습니다. 잘못된 내용이 있다면 댓글 부탁드립니다...!
- coordinator
: Presto 인스턴스가 코디네이터로써 기능하게 합니다. (기본값 = true)
즉, 클라이언트로부터 쿼리를 받아들이고 쿼리 실행을 관리합니다. - node-scheduler.include-coordinator
: 코디네이터에서도 work 스케쥴링 가능하도록합니다.
다만, 코디네이터에서 스케쥴링하도록 하면, 클러스터가 많은 경우에 쿼리 성능에 영향을 줄 수도 있습니다.(모니터링, 스케쥴을 위한 자원이 할당이 되지 않을 수도 있기때문입니다.) - http-server.http.port
: Http 서버 포트입니다. 프레스토는 외부, 내부 communication 에 http를 사용합니다. - query.max-memory=50GB
: 한 쿼리가 분산환경에서 사용가능한 최대 용량 - query.max-memory-per-node=1GB
: 한 쿼리가 단일 머신에서 사용가능한 메모리 용량 - discovery-server.enabled : 프레스토는 클러스터노드를 찾을 떄 Discovery 서비스를 사용합니다. 모든 Presto 인스턴스는 시작할때 Discovery 서비스에 등록됩니다. 간단하게 배포하고 추가 서비스가 실행되는것을 막으려면, Preso 코디네이터를 Discovery 서비스에 포함시킬 수 있습니다. Http 서버와 Presto를 공유하기 때문에 동일포트입니다.
4. 종료후 Presto 재시작
5.확인
1) SHOW SCHEMAS FROM MYSQL;
만들어진 데이터베이스들을 확인합니다.
2) SHOW tables from mysql.dm
mysql 카탈로그의 dm 데이터베이스에 있는 테이블들을 조회합니다.
3) 레코드 조회
다른 DB도 presto에 연동하면 함께 join 하여 분석할 수 있습니다.
'DataEngineering' 카테고리의 다른 글
pandas NULL이 있는 행 출력 (0) | 2023.04.05 |
---|---|
[데이터파이프라인]elastic search (0) | 2022.03.09 |
[데이터파이프라인] Presto (0) | 2022.02.28 |
[데이터파이프라인] Glue (0) | 2022.02.22 |
[데이터파이프라인] AWS Glue Crawler 시작하기 (0) | 2022.02.17 |