전체 글 (1271) 썸네일형 리스트형 [paper] Presto HBO(History-based Optimizer) 0 기본 설명+ RBO (rule-based optimizer) : 규칙 기반 최적화, 사전정의된 규칙 (무조건 인덱스를 탄다)를 통한 쿼리에 의한 실행 계획을 선택하는 데이터베이스 엔진 요소+ CBO (cost-baesed optimizer) : 비용 기반 최적화, 쿼리를 실행하는데 필요한 처리 시간, I/O 등의 비용이 가장 적제 는 실행 계획을 선택하는 데이터베이스 엔진 요소Presto의 HBO(History-based Optimizer)는 과거에 실행된 쿼리의 오퍼레이터별 런타임 통계를 저장한 후, 유사 쿼리가 실행되었을때, 최적화할 CBO 추정치 대신 실측치를 쓰는 요소. 쿼리 플랜을 정규화 한뒤 SHA256으로 해싱해 유사 플랜을 매칭. 1. 기존 문제점- 쿼리 옵티마이저는 모든 쿼리에 대.. [es] force merge https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-indices-forcemerge Force a merge | Elasticsearch API documentationAll methods and paths for this operation: POST /_forcemerge POST /{index}/_forcemerge Perform the force...www.elastic.co 먼저 엘라스틱서치의 데이터 구조는 큰 개념부터 가장 작은 단위까지 인덱스 > 샤드 > 세그먼트 > 도큐먼트 순서로 포함 관계를 가진다. 1. forcemerge하나 이상의 인덱스에 속한 샤드에 대해 강제 병합(force merge)작업을 수행할수 .. [es] 로그가 밀리기 시작했다. Elasticsearch 클러스터에서 색인이 안 된다는 알람을 받았고 처음에는 disk 용량 부족으로 판단했다. 실제 원인은 ILM warm phase가 새벽에 발행한 forcemerge 12건이 동시에 돌면서 translog fsync와 같은 디스크에서 I/O 경합을 일으킨 것이었다. disk 89~90%는 로그가 안 쌓인 1차적인 원인으로 더 큰 문제는 IOPS 여유가 없어 모든 로그가 더 느려진게 문제가 있었다. 1. 증상알람을 받은 것은 "데이터가 안들어오는데요" 였다. 특정 인덱스만 안되는지 확인해봤지만 해당 es 서버의 모든 색인이 안 되고 있었다.모든 컨슈머가 한꺼번에 다운이? 그럴리가 없지.GET _cat/allocation?v&s=disk.percent:descshards disk.i.. [paper] Spanner: Google’s Globally-Distributed Database -1. 단어 설명상태 머신 복제(State Machine Replication)같은 초기 상태에서 시작해 같은 명령들을 같은 순서로 실행하면 항상 같은 결과 상태에 도달하는 결정적(deterministic) 시스템데이터베이스가 대표적으로 빈 DB에 "x=1 쓰기 → y=2 쓰기 → x 삭제"를 순서대로 적용하면 언제나 결과는 일치한다.Paxos: 합의(consensus) 알고리즘- 안전성: 일부 서버가 죽거나 메시지가 유실 / 지연되어도, 서로 다른 서버가 서로 다른 값에 합의하는 일은 절대 없다.- 과반수(quorum) 원리: 전체 복제본의 과반수만 살아 있으면 진행할 수 있다. 5대 중 2대가 죽어도 나머지 3대로 쓰기가 계속 되며 반드시 겹치는 서버가 하나는 있기 때문에 이전 합의 내용이 유실되지 .. 오퍼월 데이터 spark vs bigquery 리포트 작업 비교 0. 결론오퍼월 3단 퍼널 로그(노출, 클릭, 전환)로 일별 캠페인 집계 리포트를 만드는 작업에서 Spark와 BigQuery를 비교했다.결론은 이 워크로드는 BigQuery scheduled query로 유지하는 것으로 결론을 냈다. 13GB 규모에서는 Spark와 BigQuery의 1회 실행 비용이 모두 같은 자릿수를 유지 했다.Spark 변환 자체는 37.5초였지만, 실행 환경 기동에 약 90초 소요spakr 사용시 정기 집계 하나를 위해 클러스터, 의존성, 스케줄러를 추가로 운영할 필요이번 PoC는 Spark / BigQuery 같은 산출물을 두 엔진에서 구현하고 데이터 운영 비용까지 포함해 현재 조건에 맞는 엔진을 고른 작업이었다. 1. 비교 범위현재 일별 캠페인 집계는 BigQuery.. [paper] C-Store: A Column-oriented DBMS C-Store: A Column-oriented DBMShttps://web.stanford.edu/class/cs345d-01/rl/cstore.pdf0. 핵심 요약기존 DBMS는 INSERT/UPDATE를 중심으로 설계되어 있었지만, 데이터 웨어하우스는 대부분의 작업이 읽기(SELECT) 이다. 분석 데이터 베이스는 기존의 DBMS에 비해 쓰기보다 읽기가 압도적으로 많으므로 설계 방식과 다르게 다음을 방향으로 설계 되었다.- Column 단위 저장- Projection 기반 저장- 적극적인 Compression- Read Optimized Storage- Snapshot Isolation- Bitmap Index 활용1. 기존 문제점1.1 대부분의 상용 DBMS가 OLTP 중심으로 설계- Row 단위.. Task 5. Identify a specific day Task 5. Identify a specific dayBuild a query that will answer: "On what day did the total number of deaths cross 8000 in Italy?" The query should return the date in the format yyyy-mm-dd.Columns to reference:country_namecumulative_deceased WITH italy_deaths_by_date AS ( SELECT date, SUM(cumulative_deceased) AS deaths FROM `bigquery-public-data.covid19_open_data.covid19_open_data` WHE.. Kafka connect (5) - schema registry schema registry란?kafka 메시지의 스키마(필드 이름과 타입 정의)를 중앙에서 버전 관리하는 REST 서비스로 저장소로 별도 DB를 쓰지 않고 kafka 자신의 내부 토픽(_schemas)을 사용한다. kafka 브로커는 메시지를 그냥 바이트 덩어리로 취급하기 때문에 "이 토픽의 메시지가 어떤 형태여야 하는가"를 아무도 강제하지 않는다. producer와 consumer가 형태에 대한 약속을 각자 코드에 들고 있을 뿐이고 필드를 바꾸는 순간 소비 시점에야 깨진다. schema registry는 템플릿으로 정해둔 코드를 관리를 담당해준다. subject - 스키마가 등록되는 단위. 기본 전략은 {토픽이름}-value(키는 -key)라서 토픽마다 스키마가 하나씩 등록된다.스키마 ID와 버전.. 이전 1 2 3 4 ··· 159 다음