SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
데이터야 안전하게 놀아보자
한번쯤은 고민해봤어야할 데이터 이야기, by chan
자기소개
절대 깨지지 않는 견고한 서비스를 지향

국내 최초(?) 은행 오픈소스 DB 엔지니어
우육빛깔	까칠행원
(KT하이텔 > 티몬 > 카카오 > 한국카카오은행)
성동찬 (Chris / Chan)
http://gywn.net
https://www.facebook.com/dongchan.sung
저는 지금 실험 중입니다.
무슨 실험을
하냐고요?
하나. 절대 깨지지 않는 서비스
둘. 극한의 퍼포먼스
셋. 99.99999999999999%
이야기 순서
가용성 이야기
변경 로그 이야기
구조 변경 이야기
사실 처음 시도한것 많아요.
무섭지만, 일단 질러보았지요. ㅋㅋㅋㅋㅋ;;
이제야 고백하지만..
1. 가용성 이야기
(가장 진지할 이야기)
MySQL로 이중화를 한다면?
얘 혼자는 외로워요.
MySQL로 이중화를 한다면?
그래서 두 대 이상을 그룹지어주죠.
스토리지 끼고 이중화
ACTIVE STAND-BY
스토리지 끼고 이중화
ACTIVE
RHCS
DRBD
DRDB는 논리 블록 카피이기는 하나, 동일 데이터 본다는 관점에서 그냥 넘어갑시다.
스토리지 비싸요.
스토리지 성능이 디비 성능을 결정해요.
디스크 의존도가 커요.
블록 깨질 때는 대응이 안돼요.
데이터 복제로 이중화
master slave
“데이터 변경 로그”로 데이터 복사
(mysql에서는 이것을 “바이너리 로그” 라고 칭합니다.)
데이터 복제로 이중화
master
복제 상태 관리가 필요하다.
롤 체인지가 귀찮다.
장애 대응 자동화가 복잡하다.
비동기로 데이터가 복제된다.
스토리지 끼고 이중화?
데이터 복제로 이중화?
스토리지 끼고 이중화?
데이터 복제로 이중화?
귀찮은 것은 자동화하자.
데이터 유실없게 고민해보자.
MHA 로 가용성 우선 확보
master slave
slave
MHA 프로세스
MHA 로 가용성 우선 확보
master slave
MHA 프로세스
master
페일오버 + 리플리케이션 재구성
MHA 에 필요한 양념
마스터 바이너리 로그
슬레이브(들)의 릴레이 로그
MHA로 자동화 달성
(장애 시 30초 이내 페일오버)
비동기 복제 취약점은?
master slave
slave
async
async
SEMI-SYNC REPLICATION
Commit
OK
Write to Binary Log
Storage Commit
Send BinaryLog
ACK
master slave
AFTER_SYNC 이야기임
SEMI-SYNC REPLICATION
master slave
slave
async
async
1ms
50ms
슬레이브 어딘가에 변경 이력 있음
MHA + SEMI-SYNC
클러스터 기준으로는 데이터 유실 없음
더이상 로컬 디스크에 의존하지 않아도 됨
가용성 확보
비동기 같은
동기같은
비동기 데이터 복제
(데이터 유실 없는)
2. 변경 로그 이야기
(꼭 알아야할 이야기)
데이터 변경하기
1 100 TEXT1_ABCDEFGHI
2 200 TEXT2_ABCDEFGHI
PK COL1 COL2
UPDATE TBL SET COL1 = COL1 + 10;
데이터 변경하기
1 110 TEXT1_ABCDEFGHI
2 210 TEXT2_ABCDEFGHI
PK COL1 COL2
데이터 변경 로그(binary log)
트랜잭션이 커밋되면 변경 내용이 기록
STATEMENT(SQL)
ROW : FULL, MINIMAL
STATEMENT
대화를 글로 쭈~욱 적은 역사서
STATEMENT
2017.10.13 10:40:00
UPDATE TBL SET COL1 = COL1 + 10;
Binary Log
STATEMENT
쿼리가 그대로 기록된다.
락 수위가 높아진다. (>= repeatable read)
쿼리 제약이 꽤 있다. (UUID, RAND..)
쿼리만 정상이면, 복제 이슈 없다.
ROW
전/후 사진을 모아놓은 그림 기록서
ROW : FULL
1 100 TEXT1_ABCDEFGHI
2 200 TEXT2_ABCDEFGHI
Binary Log
2 210 TEXT2_ABCDEFGHI
1 110 TEXT1_ABCDEFGHI
OLD
NEW
OLD
NEW
ROW : FULL
데이터 변경 전/후 이미지가 기록된다.
변경 데이터가 모두 있기에 연동이 수훨하다.
(안해봤지만) 타임머신도 구현 가능하다.
테이블과 트래픽에 따라 로그가 커질 수 있다.
ROW : MINIMAL
1
2
Binary Log
210
110
OLD
NEW
OLD
NEW
WHERE PK = 1
SET COL1 = 110
WHERE PK = 2
SET COL1 = 210
ROW : MINIMAL
변경된 칼럼 데이터만 저장된다.
타 시스템 연동 시 데이터 조회를 해봐야한다.
로그 사이즈를 예측할 수 있다.
FULL & MINIMAL
테이블에 PK가 없으면 효율이 떨어진다.
변경된 데이터 건 수가 사이즈를 좌우한다.
짚어봐야할 질문1
STATEMENT는 작고,
ROW는 무조건 크다???
ROW 평균 사이즈가 작은 경우
INSERT 위주의 서비스
짚어봐야할 질문2
ROW:FULL 시 커지는 케이스
게시판 카운트 업데이트
쿼리 하나 변경량이 많을 때
STATEMENT?
ROW:FULL?
ROW:MINIMAL?
STATEMENT?
ROW:FULL?
ROW:MINIMAL?
BINARY LOG는요.
STATEMENT가 절대적으로 작지 않습니다.
서비스 패턴에 따라 사이즈는 유동적입니다.
특성을 알고 잘~ 쓰면 삼대가 편안합니다.
BINARY LOG
메뉴얼 사이즈에 현혹되지 말
고, 지금 서비스 바라보고, 데이
터를 바라보고 결정합시데이.
3. 구조 변경 이야기
(살떨리는 진짜 운영 이야기)
스키마 변경 방법
온라인 ALTER
슬레이브 적용 후 롤 체인지
트리거 기반 유틸리티
온라인 ALTER
>= MySQL 5.6 (InnoDB)
Binlog에 ALTER 한 줄만 기록
https://dev.mysql.com/doc/refman/5.7/
en/innodb-create-index-overview.html
master
온라인 ALTER
slave
ALTER .. (1hour)
여기도 1hour
REPLICATION LAG
온라인 ALTER
인덱스를 각각 노드에서 별도 생성

(set session variable sql_log_bin = OFF)
오래 걸리지 않는 ALTER에 적합

(개인의 선택과 정책과 판단을 존중합니다.)
슬레이브 적용 후 롤 체인지
대형 테이블 스키마 변경
온라인 ALTER 불가 상황
master
슬레이브 적용 후 롤 체인지
slave
PK1
COL1
COL2
PK1
PK2
COL2
슬레이브 적용 후 롤 체인지
롤 체인지 시 기존 세션 강제 KILL
데이터 안정성 보장 여부 판단 필요
(이건 MHA로 충분히 가능합니다.)
트리거 기반 유틸리티
pt-online-schema-change
트리거 기반 유틸리티
http://gywn.net/2017/08/small-talk-pt-osc/
트리거 기반 유틸리티
리플리케이션 지연 없음
롤체인지 필요 없음
그러나.. 로그 사이즈?
트리거 기반 유틸리티
1 100
2 200
PK COL1
3 300
4 400
5 500
1 100
PK COL1
3 300
BULK INSERT
Trigger
트리거 기반 유틸리티
1 100
2 200
PK COL1
3 300
4 400
5 500
1 100
PK COL1
3 300
BULK INSERT
STATEMENT 로 남기자
트리거 기반 유틸리티
BULK INSERT : STATEMENT

set session tx_isolation='repeatable-read';

set session binlog_format='statement';
TRIGGER : ROW
스키마 변경 방법
데이터
사이즈
복제 지연
로그 사이즈
ALTER
그때 그때 선택하세요
구조 변경
그때 그때 달라요.
가용성을 고민해보았고
(LOSSLESS Replication + MHA)
로그 포멧도 고민해 봤으며
(STATEMENT / ROW:FULL / FOW:MINIMAL)
구조 변경에도 고민했습니다.
(Online ALTER / Slave 변경 / pt-online-shema-change)
내가 책임지는 나만의 실험실
가용성
안정성데이터
Q/A
아직 짤리면 안되니, 민감한 질문은 사양
감사해유~!

Más contenido relacionado

La actualidad más candente

카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox
떠리 이
 
A review of zookeeper 2010.12
A review of zookeeper 2010.12A review of zookeeper 2010.12
A review of zookeeper 2010.12
HoJin Ha
 
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
InBum Kim
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
ukjinkwoun
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석
Daeyong Shin
 

La actualidad más candente (20)

카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox
 
A review of zookeeper 2010.12
A review of zookeeper 2010.12A review of zookeeper 2010.12
A review of zookeeper 2010.12
 
(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성(OCI 탐험일지) 인스턴스 생성
(OCI 탐험일지) 인스턴스 생성
 
Mongodb cluster
Mongodb clusterMongodb cluster
Mongodb cluster
 
Mongo db 복제(Replication)
Mongo db 복제(Replication)Mongo db 복제(Replication)
Mongo db 복제(Replication)
 
Ch9,10. Deployments and Statefulsets
Ch9,10. Deployments and StatefulsetsCh9,10. Deployments and Statefulsets
Ch9,10. Deployments and Statefulsets
 
Operating system #1
Operating system #1Operating system #1
Operating system #1
 
Subversion Branch
Subversion BranchSubversion Branch
Subversion Branch
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
 
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
만들면서 배우는 Cocos2d x 멀티 플랫폼 게임 프로그래밍 10-11장
 
Concurrency in action - chapter 7
Concurrency in action - chapter 7Concurrency in action - chapter 7
Concurrency in action - chapter 7
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
Mongodb 특징 분석
Mongodb 특징 분석Mongodb 특징 분석
Mongodb 특징 분석
 
쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리
 
Lock free queue
Lock free queueLock free queue
Lock free queue
 
Concurrency in action - chapter 5
Concurrency in action - chapter 5Concurrency in action - chapter 5
Concurrency in action - chapter 5
 
비동기 파일 로딩
비동기 파일 로딩비동기 파일 로딩
비동기 파일 로딩
 
Mongo db 2.x to 3.x
Mongo db 2.x to 3.xMongo db 2.x to 3.x
Mongo db 2.x to 3.x
 
Ch3,4. Pod, Replication and Controllers
Ch3,4. Pod, Replication and ControllersCh3,4. Pod, Replication and Controllers
Ch3,4. Pod, Replication and Controllers
 

Similar a Let's Play with Data Safely

Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Jongwon Han
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
cranbe95
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
Seok-joon Yun
 

Similar a Let's Play with Data Safely (20)

Pgday bdr gt1000
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000
 
Pgday bdr 천정대
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 7회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용MySQL 상태 메시지 분석 및 활용
MySQL 상태 메시지 분석 및 활용
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성[122]네이버의모던웹라이브러리 박재성
[122]네이버의모던웹라이브러리 박재성
 
Intro KaKao ADT (Almighty Data Transmitter)
Intro KaKao ADT (Almighty Data Transmitter)Intro KaKao ADT (Almighty Data Transmitter)
Intro KaKao ADT (Almighty Data Transmitter)
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
 

Más de Dataya Nolja

Más de Dataya Nolja (20)

How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for ML
 
Music Data Start to End
Music Data Start to EndMusic Data Start to End
Music Data Start to End
 
Find a Leak Time in the Schedule
Find a Leak Time in the ScheduleFind a Leak Time in the Schedule
Find a Leak Time in the Schedule
 
A Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML inA Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML in
 
Practice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty WorkPractice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty Work
 
Predicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next StationPredicting People Who May Get off at the Next Station
Predicting People Who May Get off at the Next Station
 
Endless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data CollectingEndless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data Collecting
 
Log Design Case Study
Log Design Case StudyLog Design Case Study
Log Design Case Study
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
Things Happend between JDBC and MySQL
Things Happend between JDBC and MySQLThings Happend between JDBC and MySQL
Things Happend between JDBC and MySQL
 
Human-Machine Interaction and AI
Human-Machine Interaction and AIHuman-Machine Interaction and AI
Human-Machine Interaction and AI
 
Julia 0.5 and TensorFlow
Julia 0.5 and TensorFlowJulia 0.5 and TensorFlow
Julia 0.5 and TensorFlow
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon Valley
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 Alpha
 
Kakao Bank Powered by Open Sources
Kakao Bank Powered by Open SourcesKakao Bank Powered by Open Sources
Kakao Bank Powered by Open Sources
 
Open Source is My Job
Open Source is My JobOpen Source is My Job
Open Source is My Job
 
Creating Value through Data Analysis
Creating Value through Data AnalysisCreating Value through Data Analysis
Creating Value through Data Analysis
 
How to Make Money from Data - Global Cases
How to Make Money from Data - Global CasesHow to Make Money from Data - Global Cases
How to Make Money from Data - Global Cases
 
Structured Streaming with Apache Spark
Structured Streaming with Apache SparkStructured Streaming with Apache Spark
Structured Streaming with Apache Spark
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its Difficulty
 

Let's Play with Data Safely