본문 바로가기

에이플랫폼129

타임게이트, 한국은행과 ‘데이터 레이크 구축사업’ 체결에 SingleStoreDB 도입 결정 타임게이트, 한국은행과 ‘데이터 레이크 구축사업’ 체결 ​ 실시간 데이터 처리 위해 싱글스토어DB 도입 결정 ​ “싱글스토어DB 표준SQL 기반 모든 워크로드 처리” ​ 관련 기사입니다. ​ 테크데일리 ​ https://lnkd.in/gfVu8bUX ​ 전자신문 ​ https://lnkd.in/gPUz29sD 2024. 2. 6.
Row Generation 튜닝#1 - SingleStore ※ 테스트 장비 사양 - 8vCPU, 16GB ​ 이전 포스트에서 SingleStore 의 Row Generation 은 7억건에서 메모리 부족 에러가 발생했습니다. 그 이유는 create_array 및 table 로 변환한 모든 row 를 대상으로 row_number() 함수로 정렬을 수행하기 때문에 부가적인 메모리가 더 필요하기 때문입니다. 물론 정렬 작업 때문에 시간도 조금 더 필요합니다. create or replace function gen_rows(n bigint) returns table as return select row_number() over () as rn from table(create_array(n):>array(bigint)); 이제 정렬이 필요없도록 튜닝을 해보겠습니다. 먼저.. 2024. 1. 18.
Row Generation 성능 비교 - SingleStore, Oracle, MySQL, PostgreSQL 🎯 개요 ​이전 포스트에서 Row Generation 방법을 소개해 드렸습니다. 2024.01.04 - [연구노트] - Row Generation - SingleStore, Oracle, MySQL PostgreSQL 이번 포스트에서는 각 DB 마다 Row Generation 성능을 간단하게 비교하도록 하겠습니다. 비교 테스트에 사용한 장비는 8vCPU, 16GB 의 사양으로 Hands-On 테스트에 사용했던 장비를 그대로 사용하였고 여기에 Oracle XE 21c 를 추가로 설치했습니다. ​ ​ 🎯 Oracle Oracle XE 21c는 SGA+PGA 합쳐서 2GB 를 넘지 못하도록 제약이 걸려 있습니다. 따라서 불가피하게 PGA가 3000MB 로 설정되어 있는 Autonomous Database 에서.. 2024. 1. 12.
Row Generation - SingleStore, Oracle, MySQL PostgreSQL 🎯 Row Generation ​이번 포스트에서는 임의의 n개 row 를 생성하는 방법을 알아 보겠습니다. ​ 🎯 Oracle ​Oracle 에서는 Hierarchical Query 를 이용해서 임의의 row 를 생성합니다. SQL> select rownum from dual connect by level select * from table([1,2,3]); +-----------+ | table_col | +-----------+ | 1 | | 2 | | 3 | +-----------+ 3 rows in set (0.00 sec) 만일 많은 row 를 생성해야 한다면 다음과 같이 create_array 함수를 이용합니다. singlestore> select * from table(create_array.. 2024. 1. 4.
SingleStore Hands-On #6 Unlimited Storage Database 🎯 개요 SingleStore 는 데이터베이스를 생성할 때 Local Database 또는 Unlimited Storage Database(USD) 를 선택할 수 있습니다. ▶ Local : SingleStore 클러스터가 설치된 장비 ▶ Unlimited Storage : SingleStore 클러스터 외부의 Object Storage ​ 이번 테스트에서는 Unlimited Storage 의 개념 파악 및 기능 테스트를 수행해 보도록 하겠습니다. 🎯 Unlimited Storage Unlimited Storage 를 선택하면 데이터베이스의 크기에 제한이 없어집니다. 그래서 Bottomless 데이터베이스라고 불리기도 합니다. Unlimited Storage Database 를 생성하면 실제 데이터는 지.. 2023. 12. 28.
SingleStore Hands-On #5 Online Scale Out/In 🎯 개요 SingleStore 는 분산(Distributed) 데이터베이스로 Shared Nothing 구조를 가지고 있습니다. 따라서 현재 시스템보다 더 높은 성능이 요구될 때 쉽게 수평 확장(Scale Out)할 수 있는 것이 큰 장점입니다. ​ 이번 테스트에서는 k6 성능테스트 툴로 Data API 를 이용해 트랜잭션이 실행되는 도중에 온라인으로 수평 확장(Scale Out) 및 축소(Scale In) 작업을 수행하도록 하겠습니다. ​ 실제 SingleStore 입장에서는 Leaf Node 를 추가/삭제하는 작업을 수행합니다. ​ 🎯 gnuplot 설치 SingleStore 클러스터가 온라인 상태에서 Leaf 노드를 추가/삭제할 동안 성능의 변화를 파악하기 위해 k6 실행 결과를 csv 로 로깅할 .. 2023. 12. 21.
Real-Time Data Platforms: SingleStore vs Databricks SingleStore와 Databricks는 모두 고객들이 직면한 중요한 과제를 해결할 수 있는 훌륭한 데이터 플랫폼입니다. 그러나 Databricks와 달리 SingleStore는 처음부터 성능을 최우선으로 고려하여 설계되었고, 이는 곧 비용 절감에 여러 이점을 가져왔습니다. 이번 글은 이러한 차이점을 살펴볼 여러 시리즈 중 첫 번째 글로, SingleStore가 뛰어난 영역인 실시간 분석 및 운영에 관한 주제로 시작하겠습니다. 또한, SingleStore은 실시간이 아닌 일괄 ETL 작업에서도 비용과 성능 면에서 이점이 있음을 확인했으며, 이어진 글에서 설명드리도록 하겠습니다. Understanding the value of real-time data 먼저, 실시간 데이터의 중요성을 알아보겠습니다. .. 2023. 12. 7.
SingleStore Hands-On #4 Data API 🎯 개요 RDBMS 를 사용하는 고전적인 프로그래밍 방식은 프로그램 실행 초기에 커넥션(connection) 을 열고 특정 SQL 을 처리하기 위한 커서(cursor) 를 생성한 다음 커서의 실행 결과를 페치(fetch) 하여 처리하고 커넥션을 닫는 순서로 작성되곤 했습니다. ​ 문제는 커넥션을 맺거나 끊는 작업이 DBMS 입장에서는 상당히 무겁고 큰 비용이 발생하는 작업이라는 것입니다. 그래서 보통 일정 갯수이상의 커넥션을 미들웨어나 WAS 등에 커넥션 풀(Connection Pool) 형태로 만들어 두고 필요할 때마다 커넥션을 열고 닫는 것이 아니라 커넥션 풀에서 커넥션을 획득/반납하게 합니다. RDBMS 와 WAS 등의 미들웨어간에는 항상 커넥션이 유지되기 때문에 커넥션 생성 및 제거에 시스템 자원.. 2023. 11. 23.
SingleStore Hands-On #3 동일 Query 성능 비교 - PostgreSQL, MySQL 🎯 개요 이전 포스트에서 CC By 4.0 License 를 가지고 있는 Stefan Proell, Eva Zangerle, Wolfgang Gassler 가 만든 Flughafen DB가 원본인 airportdb 를 로딩했습니다. 2023.11.10 - [연구노트] - SingleStore Hands-On #2 데이터 로딩 이제 설치한 각 데이터베이스 별로 동일한 Query 를 수행하여 성능을 비교해 보겠습니다. 각 Query 는 Parsing 및 Buffer Cache miss 등의 성능상 오버헤드를 제거하고자 두 번씩 연속으로 수행하고 두번째 수행 결과를 확인합니다. ​ Query #1, Query #3, Query #4 는 MySQL Heatwave Quickstart Page 에서 예제로 사용하.. 2023. 11. 17.