안내
https://dataengweekly.com/ 라는 사이트에서는 데이터 엔지니어링 글들을 묶어서 매주 1회 news letter를 발생하고 있습니다.
저는 315회부터 받기 시작했습니다. 뉴스레터를 요약한 포스팅을 저도 매주 1회 올려볼까 노력 중입니다.
뉴스레터를 구독하실 분은 https://dataengweekly.com/ 에 방문하시어 이메일 주소를 입력하시면 됩니다.
이슈 #318
Operating a Large, Distributed System in a Reliable Way
Uber에서 작성한 글.
https://blog.pragmaticengineer.com/operating-a-high-scale-distributed-system/
분산 시스템 운영의 Best Practice들을 공유한다.
구글에서 작성한 SRE Book이라는 무료 책도 알게 되었다.
Presto at Pinterest
https://medium.com/@Pinterest_Engineering/presto-at-pinterest-a8bda7515e52
한 3년 전에 Presto를 써 봤을 때 성능적으로 큰 장점이 안 보였는데, 사용하는 곳이 많은 것 같다.
Pinterest에서 사용중인 Presto Cluster의 규모는 Data가 수백 PB, 하이브 테이블이 수만개, 메모리가 100TB 이상, core 개수가 1.4만개 이상이라고 한다.
OctoSQL
https://github.com/cube2222/octosql
Octo하면 팔이 8개 달린 문어가 생각난다. OctoSQL도 문어에서 이름을 따왔다고 한다.
여러 개의 Data Source로부터 data를 읽어들이는 것 문어로 형상화했다한다.
csv 파일과 redis에 각각 Data가 존재할 때 아래처럼 설정 파일을 만든 후
dataSources:
- name: cats
type: csv
config:
path: "~/Documents/cats.csv"
- name: people
type: redis
config:
address: "localhost:6379"
password: ""
databaseIndex: 0
databaseKeyName: "id"
아래와 같은 SQL을 실행하면 cvs와 redis의 Data를 JOIN할 수 있다.
octosql "SELECT p.city, FIRST(c.name), COUNT(DISTINCT c.name) cats, SUM(c.livesleft) catlives
FROM cats c JOIN people p ON c.ownerid = p.id
GROUP BY p.city
ORDER BY catlives DESC
LIMIT 9"
LinkedIn has open sourced Brooklin
https://engineering.linkedin.com/blog/2019/brooklin-open-source
Linkedin에서 사용 중인 streaming 입수 시스템이라는데, 하루에 2조 개의 메시지를 처리 중이라고 한다.
다양한 Data Source(Kafka, Kinesis, Oracle, MySQL) Data를 읽을 수 있고, Destination도 다양하다고 하는데, Spark Streaming과의 차이점은 무엇일까?
본 카테고리의 추천 글
- Kafka Unit Test with EmbeddedKafka
- Spark Structured Streaming에서의 Unit Test
- spark memoryOverhead 설정에 대한 이해
- Spark 기능 확장하기
- Spark DataFrame vs Dataset (부제: typed API 사용하기)
- Spark UI 확장하기
- Custom Spark Stream Source 개발하기
- Spark에서 Kafka를 batch 방식으로 읽기
- SparkSession의 implicit에 대한 이해
- spark-submit의 –files로 upload한 파일 읽기
- Scala case class를 Spark의 StructType으로 변환하기
- Spark on Kubernetes 사용법 및 secure HDFS에 접근하기
- Spark의 Locality와 getPreferredLocations() Method
- Spark Streaming의 History