일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS Crawler
- Databricks
- 카프카
- 프로그래머스
- 데이터엔지니어링
- ORACLE MSSQL차이
- 스파크
- Spark 최적화
- 지연연산
- lazy evaluation
- kafka 설치
- 문맥교환
- 하둡2.0
- 프로그래머스 큰 수 만들기
- 데이터파이프라인
- 런타임데이터영역
- ORACLE문법
- 데이터 수집
- 하둡1.0
- 하둡에코시스템
- Spark
- 프로그래머스힙
- 하둡
- 빌드도구
- Catalyst Optimizer
- EMR 구조
- 데이터베이스복사
- 서버간 복사
- freenom
- 실행엔진
- Today
- Total
목록DataEngineering (31)
띵유로그
데이터를 처음 보면 가장 먼저 해야할 행동은 NULL이 있는지 파악하기입니다. 어느 열이라도 NULL이 하나라도 있으면 행전체를 출력 data[data.isna().any(axis=1)] pandas에서 axis 1은 열, axis 0은 행(index)입니다. axis = 1 이니, 어느 열이라도 na가 있으면 해당 index를 반환합니다.
SPARK의 DATAFRAME은 비타입형, DATASET은 타입형입니다. DATAFRAME DATAFRAME이 비타입형이라고 하는데에 무리가 있을 수 있겠지만, 포인트는 데이터타입이 런타임에 결정된다는 것입니다. DATAFRAME은 ROW type으로 구성된 DATASET입니다. ROW는 연산에 최적화 된 인메모리 포맷입니다. 가비지컬렉션 등 추가로 관리가 필요한 jvm 의 타입이 아니라 연산이 효율적입니다. DATASET DATASET은 타입형입니다. 컴파일시간에 데이터타입이 결정됩니다. JVM 기반 언어이기 때문에 스칼라, 자바에서만 지원하고 python 등에서는 dataset을 쓸 수 없습니다. dataset을 사용하려면 스칼라-case class /자바 - Bean을 통해서 만들 수 있습니다. 컴..
이번 글에서는 효율적인 코드 작성을 위한 스파크 튜닝 방법에 대해서 정리해보겠습니다. 1. 파티셔닝 사용 적절한 파티션의 개수를 두어 데이터의 분포를 적절하게 하는것이 중요합니다. 한 파티션에 너무 많은 데이터가 들어간다면, 처리하는데 비용이 너무 많이 들것이고 적은 데이터를 가진 파티션들이 너무 많다면 스케쥴링하는데에 비용이 많이 들것입니다. 또 모든 메타데이터를 저장하고 있어야합니다. 예를들어 RDD를 filter 하고 난 후에는 파티션별로 데이터의 양이 상이할 수 있습니다. 이때 repartition을 해주어서 데이터를 재분배해주는 것이 좋습니다. 2. 캐싱 RDD는 액션함수가 실행될 때마다 데이터로드부터 다시 계산됩니다. 그래서 동일한 RDD를 가지고 여러번의 연산을 해야할 때는 중복실행을 줄이기..
Elasticsearch를 간단하게 사용해보겠습니다. Elasticsearch는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진입니다. 방대한 양의 데이터 거의 실시간( Near Real Time )으로 저장, 검색, 분석할 수 있습니다. Elasticsearch는 단독으로 사용되기도 하며, ELK( Elasticsearch / Logstatsh / Kibana )스택으로 사용되기도 합니다. ELK스택에서 Elasticsearch의 역할은 간단하게 말하면, 정보를 검색, 집계하여 필요한 정보를 획득한다고 할 수 있겠습니다. EC2 서버에 logstash 를 설치해서 S3 -> elastic search 로 데이터를 옮겨온 후 kibana 로 데이터를 표출해보겠습니다. ..
스파크의 기본 아키텍쳐에 대해 알아보겠습니다. 스파크는 컴퓨터의 리소스를 관리하는 Cluster Manger와 그 위에 동작하는 Spark application으로 구성되어있습니다. 1. 클러스터 매니져 클러스터 매니져는 스파크 어플리케이션의 리소스를 효율적으로 분배하는 역할을 합니다. 스파크는 태스크를 할당하기 위해 클러스터 매니져에 의존합니다. 할당가능한 excutor를 전달받으면 그대로 할당하는 역할만을 수행하기 때문에 매우 중요합니다. 클러스터 매니져는 스파크와 떼었다 붙일 수있고 3.0기준으로 스파크 standalone 클러스터 매니저, 하둡 YARN, 메소스, Kubernetes 등이 사용가능합니다. 각 종류에 대해 잘 정리되어있는 글이 있어 남겨둡니다. https://paranwater.ti..
지난 포스팅에서는 프레스토를 알아봤는데요, 이번 포스팅에서는 Mysql 과 연동해보겠습니다. Presto에 대한 기본적인 내용부터 각종 DBMS와의 연결방법은 https://prestodb.io/docs/current/overview.html에도 자세히 나와있으니 참고하면 좋을 것같습니다. 먼저, Emr 생성시 Presto를 선택해주고 띄운후 접속해줍니다. 운영중인 mysql 은 이미 있고, 인바운드, 아웃바운드 규칙은 이미 설정되어있다고 가정합니다! /etc/presto/conf/catalog 폴더에 가면 기본적으로 hive.properties 파일만 존재하는것을 볼 수 있습니다. (awsdatacatalog.properties는 hive.properties 파일로의 링크임) 1. 카탈로그 추가 (my..
Presto는 분산환경에서의 SQL쿼리 엔진입니다. 서로 다른 DB의 data도 join 할 수 있는 기능이 있습니다. Hive는 중간에 데이터를 디스크에 저장하지만 Presto는 메모리에 올리기 때문에 더 빠르다는 장점이 있습니다. 또 AWS 아테나도 Presto 엔진으로 구성되어있어 쿼리를 실행할 수 있지만, 이기종간의 data join이 불가능합니다. 또 아테나는 서버리스이기때문에 데이터 용량에 따라 요금이 부과되지만, Presto는 사용한 computing power을 사용한 시간에따라 요금이 부과됩니다. Presto CLI에서 명령어를 제출하면 코디네이터는 분석 후 실행계획을 세웁니다. 그 후 실행계획에 따라 worker에게 task를 줍니다. 따라서 당연히 worker노드를 관리합니다. wor..
AWS Glue를 통해 메타데이터를 관리할 수 있습니다. 이번 포스팅에서는 Glue에 대해서 알아보겠습니다. Glue는 ETL Work flow를 정의하고 job을 돌릴 수 있습니다. glue 의 기능은 크게 3가지 정도로 볼 수 있습니다. 1. Data Catalog : Meta Data Store 2. Aws Glue Crawler : 저장소에서 자동으로 데이터를 스캔,분류, 스키마정보 추출 할 수 있도록 crawler를 만들 수 있습니다. 3. Aws Glue ETL 연산 : Job, Stream 서비스 분석 가능하고 Trigger 기능을 제공합니다. 각 항목을 좀 더 자세하게 살펴보겠습니다. 1. Data Catalog 보통 서비스 운영시 하나의 DB만을 사용하지 않습니다. RedShift, S3..