[캐글뽀개기] 캐툴즈툴(주말) 스터디 : 파트 1 - 8회차
(SQL) 9. 서브 쿼리: 쿼리 안의 쿼리 & 10. 외부 조인, 셀프 조인, 유니온: 새로운 조작법 Tae Young Lee
제가 금일 발표할 내역은 왜 서브 쿼리와 조인을 사용하는가?에 대해 생각해 보고 Query의 관점에서 서브 쿼리와 조인을 바라보기 위한 기초 지식들에 대해 살펴보겠습니다. 예를 들자면, Block I/O비용이라든지 Indexing관련 기반 지식과 Oracle Database구조도 설명을 통해 Query의 동작 방식에 대해 간략히 알아보겠습니다.
그 후 서브쿼리와 조인의 활용법에 대해 알아보는 시간을 갖도록 하겠습니다.
제가 이렇게 금일 세미나를 준비한 이유는 대부분의 사람들은 쿼리를 만들어 날려 자기가 원하는 데이터를 뽑아 쓸 수는 있어도 그 쿼리가 실제적으로 사용되는 화면단이라든지 DB부하와 서버 부하 이런 상식에 대해선 무지한 경우가 많이 결국 사용자 불편을 초래하는 경우가 많기 때문입니다. 그래서 금일 세미나를 통해 Query와 사용자 그리고 시스템 관점에서 바라볼 수 있는 기회를 제공하고자 준비해 보았습니다.
[캐글뽀개기] 캐툴즈툴(주말) 스터디 : 파트 1 - 8회차
(SQL) 9. 서브 쿼리: 쿼리 안의 쿼리 & 10. 외부 조인, 셀프 조인, 유니온: 새로운 조작법 Tae Young Lee
제가 금일 발표할 내역은 왜 서브 쿼리와 조인을 사용하는가?에 대해 생각해 보고 Query의 관점에서 서브 쿼리와 조인을 바라보기 위한 기초 지식들에 대해 살펴보겠습니다. 예를 들자면, Block I/O비용이라든지 Indexing관련 기반 지식과 Oracle Database구조도 설명을 통해 Query의 동작 방식에 대해 간략히 알아보겠습니다.
그 후 서브쿼리와 조인의 활용법에 대해 알아보는 시간을 갖도록 하겠습니다.
제가 이렇게 금일 세미나를 준비한 이유는 대부분의 사람들은 쿼리를 만들어 날려 자기가 원하는 데이터를 뽑아 쓸 수는 있어도 그 쿼리가 실제적으로 사용되는 화면단이라든지 DB부하와 서버 부하 이런 상식에 대해선 무지한 경우가 많이 결국 사용자 불편을 초래하는 경우가 많기 때문입니다. 그래서 금일 세미나를 통해 Query와 사용자 그리고 시스템 관점에서 바라볼 수 있는 기회를 제공하고자 준비해 보았습니다.
[PYCON Korea 2018] Python Application Server for Recommender System Kwangseob Kim
한글 수정: https://www.slideshare.net/kimkwangseop/pycon-korea-2018-python-application-server-for-recommender-system-110602118
추천 시스템을 위한 어플리케이션 서버 개발 후기
@ PYCON Korea 2018
link: https://www.pycon.kr/2018/program/33
The Data tech for AI based innovation(기업의 AI기반 혁신을 지원하는 데이터 기술)SANG WON PARK
2020년 데이터산업진흥원에서 발표한 자료를 일부 편집하여 공유함.
2020년 당시에 Data Platform에서 AI lifecycle를 효율적으로 지원하는 platform을 적극적으로 검토 및 설계하는 작업을 진행하였고, 이 때 검토 및 활용했던 기술들을 기업 관점에서 필요한 내용을 기준으로 정리하였다.
기업들은 전통적인 방식으로의 혁신에 한계를 체감하고 있으며, 최근 AI기반으로 성공적인 혁신(비즈니스 강화, 새로운 비즈니스로 전환 등)에 성공한 기업들을 빠르게 벤치마크 하고 있다.
이렇게 AI 기반으로 기업을 혁신하는 것은 고도화된 AI 모델의 도입으로 해결되지 않으며, 수많은 기술들의 최적화된 조합 및 활용이 필요하다.
이 자료에서는 그 중 AI모델에 핵심적인 데이터를 적시에, 고품질의 형태로, 빠르고 안정적으로 제공할 수 기술 트렌드를 소개한다.
전체 내용은
- AI기반 혁신이란?
- 혁신을 위해서는 어떤 점이 어려운가?
- 고품질 데이터 확보 기술
- 빠르게 AI 모델을 학습하는 기술
- 적시에 다양한 AI 모델을 비즈니스에 적용하는 기술
2020년 기준으로 작성된 자료라, 일부 기술 트렌드가 반영되지 않을 수 있으나 아직까지 많은 기업들이 고민하고 해결하고자 하는 영역이라 참고할 수 있을 것 같다.
이 내용을 기준으로 발표한 영상 링크 : https://www.youtube.com/watch?v=OVm4-uk59ZA
Scala, Spring-Boot, JPA를 활용한 웹 애플리케이션 개발 과정에 대해 다룬다. Spring-Boot와 JPA 조합만으로도 생산성 있는 웹 애플리케이션 개발이 가능하다. 이 조합만으로도 충분히 의미가 있지만 여기에 Scala라는 약간은 불편한 듯 보이는 언어를 도입함으로써 얻을 수 있는 즐거움을 공유한다. Spring-Boot + JPA 조합에 Scala를 적용하면서의 좌충우돌 경험담을 전한다.
AWS EMR을 사용하면서 비용을 최적화하기 위해 필요한 다양한 관점의 방안을 검토하여 정리한 자료.
비용 최적화 대상은 zeppelin/jupyter notebook과 apache spark를 활용하는 서비스를 대상으로 하였으며, 해당 작업이 aws emr에서 어떻게 동작하는지 내부 구조을 파악하여 확인함.
- AWS EMR이란?
- AWS EMR의 과금 방식은?
- 어떻게 비용을 최적화 할 것인가?
- 최적의 EMR 클러스터 구성 방안
- 가성비 높은 Instance 선정 방안
- Apache Spark 성능 개선 방안
가장 중요한 것은 실행할 job의 자원사용량/성능을 모니터링하고, 이에 맞게 자원을 최적화하는 것이 필요함.
Similar to 실무로 배우는 시스템 성능 최적화 Ch7 (20)
5. 전체 테이블 탐색
• 메인 리더가 대량 건 조회 시 전체 테이블 탐색이 유
리
• index가 있을 경우 hint로 전체 탐색을 유도
• 읽기 일관성 이슈
<출처:http://startingpitcher.tistory.com/429>
“Ora-01555 Snapshot too old”
대량을 데이터를 처리하는 배치작업에서
자주 발생하고, 이로 인해 성능 저하
6. Ora-01555 해결 방안
• 작업 재 배치
• 배치 성능 개선
• 메인 리더에 쿼리에 Order by 추가
• 임시 작업 테이블 활용
• 인덱스 탐색을 이용한 내포 조인
7. 테이블 탐색을 효과적으
로• 파티션
• 파티션 키를 사용하여 파티션별로 데이터 처리
• 해시 조인
• 대량 건수 조회시 hint를 통한 해시 조인 사용
• 병렬 처리
• 프로세스/스레드를 통해 건수를 나누어 처리
• 병렬 처리시에는 전체 탐색보다 인덱스 탐색이 유
리
8. 쿼리 통합
• 메인 리더와 건별 처리 조회 쿼리 통합
• 조인을 통해 한번에 메인 리더에서 조회
• 메인 리더와 Insert 통합
• ex) Insert ~ Select ~ From ~ Where
• Select / Insert / Update 통합
• 건별 처리 작업에서 Select/Insert/Update가 나누어
진 경우
• Merge를 이용해 Select/Insert/Update를 통합
9. APM 활용
• 성능 개선 대상 서비스와 그 원인이 되는 SQL 식별
에 용이
• 주요 제품
• 제니퍼(Jennifer)
• 스카우터