본문 바로가기

SingleStoreDB135

SingleStore에서 secure_file_priv 설정 방법 및 NULL값의 보안 위험 - [Support Bulletin 12] 안녕하세요! 에이플랫폼 Support Bulletin의 열 두번째 이야기입니다. 😊데이터베이스의 보안 설정은 시스템의 안정성과 신뢰성을 좌우합니다.특히 secure_file_priv 변수는 파일 입출력 관련 기능을 제어하여 잠재적인 보안 위협을 줄이는 중요한 역할을 합니다.이번 글에서는 secure_file_priv가 어떤 기능을 수행하는지 알아보고, 이를 NULL로 설정했을 때 어떤 현상이 발생하는지 상세히 살펴보겠습니다. secure_file_priv 란 ?secure_file_priv는 파일 입출력 작업의 보안 범위를 제어하는 시스템 변수입니다.이 변수는 데이터베이스 서버가 파일을 읽거나 쓸 수 있는 디렉터리를 제한함으로써, 데이터 유출이나 시스템 침해와 같은 보안 위협을 최소화하는 역할을 합니다.. 2025. 7. 18.
[Support Bulletin 11] - 10M row 테스트로 본 DENSE_RANK() 성능의 진짜 변수 안녕하세요! 😊에이플랫폼 Support Bulletin의 열한 번째 이야기로 찾아뵙게 되었습니다.이번 편에서는 많은 분들이 자주 활용하시는 dense_rank 함수가 기대만큼 빠르지 않을 때 생기는 고민에 대해 이야기해보려 합니다.순위 계산을 위해 dense_rank를 적용했지만, 성능 저하로 인해 처리 시간이 길어지고, 결국 전체 쿼리 성능까지 영향을 받는 경험... 혹시 한 번쯤 겪어보셨나요?이번 글에서는 저희가 실제 프로젝트 중 겪었던 문제 사례와 함께, 이를 해결할 수 있었던 실전 팁을 소개드릴 예정입니다. 순위 함수란SQL에서 데이터를 정렬하거나 순위를 매길 때 자주 사용하는 윈도우 함수들이 있습니다.그 중 가장 대표적인 순위 함수는 ROW_NUMBER(), RANK(), DENSE_RANK.. 2025. 7. 11.
[Support Bulletin 10] - SELECT문에 없는 LIMIT, 왜 생겼을까? 안녕하세요! 에이플랫폼 Support Bulletin의 열 번째 이야기입니다. 😊이번 글에서는 ODBC의 Prefetch 설정이 의도하지 않은 쿼리 변형과 데이터 왜곡을 어떻게 일으킬 수 있는지를 다룹니다.분명 쿼리에는 LIMIT이 없었는데…서버 로그엔 LIMIT이 붙은 쿼리가 보였습니다.게다가 100만 건의 중복 없는 데이터를 분석했는데도, COUNT(DISTINCT( )) 결과가 엉뚱하게 나왔습니다.어떻게 이런 일이 벌어졌을까요?이번 경험을 통해, Prefetch 옵션이 데이터 흐름에 어떤 영향을 줄 수 있는지 직접 살펴보겠습니다.MySQL ODBC 사용이번 환경에서는 SingleStore는 MySQL 호환성 덕분에 MySQL ODBC 드라이버를 사용할 수 있었고,무엇보다 BI 툴에서 MySQL O.. 2025. 7. 3.
데이터베이스 성능 비교: SingleStore vs. ClickHouse 실전 분석 안녕하세요 에이플랫폼 입니다.이번 글에서는 두 인기 데이터베이스인 SingleStore와 ClickHouse의 성능을 비교한 실전 분석 결과를 공유합니다.두 시스템은 유사한 사용 목적을 갖고 있어 많은 사용자들이 선택의 기로에 놓이는데요. 이를 돕기 위해 각 데이터베이스의 성능을 객관적인 지표로 평가하고, 특히 SingleStore를 효과적으로 활용할 수 있는 방법을 살펴보겠습니다.특히 눈여겨볼 부분은, 대규모 데이터 분석에서 핵심적인 역할을 하는 조인(Join) 쿼리에서 ClickHouse가 기대와 달리 낮은 성능을 보였다는 점입니다.이러한 결과는 빅데이터 기반의 업무 환경에서 최적의 데이터베이스를 선택할 때 중요한 시사점을 제공합니다. 테스트 방법이번 성능 비교 테스트는 TPC-DS 데이터셋을 기반으.. 2025. 6. 4.
[Support Bulletin 09] - Trailing Space 에 따른 SQL 결과 차이 안녕하세요! 에이플랫폼 Support Bulletin의 아홉 번째 이야기입니다. 😊오늘은 SingleStore에서 공백 하나가 SQL 결과를 어떻게 바꿀 수 있는지 알아보겠습니다. Trailing Space란? 데이터 비교에서 중요한 이유데이터를 다룰 때 공백(Whitespace)은 단순한 빈 공간처럼 보이지만, 때로는 결과에 중요한 영향을 미칠 수 있습니다.특히 Trailing Space는 문자열 끝에 위치하는 공백을 의미하며, 데이터 저장이나 비교 시 예상치 못한 차이를 만들 수 있습니다.Trailing Space의 예제예를 들어, 아래 두 개의 문자열을 비교한다고 가정해 봅시다. 'hello' 'hello ' 사람이 볼 때는 같은 값처럼 보이지만, 일부 시스템에서는 이 둘을 다른 값으로 인식하거나.. 2025. 5. 30.
SingleStore vs MySQL vs PostgreSQL, 100M+ 레코드, 도커에서 누가 더 빠를까? 안녕하세요 에이플랫폼 입니다.오늘은 Docker 환경에서 SingleStore, Mysql, PostgreSQL을 밴치마킹 해보겠습니다.현실적인 핀테크 스타일의 워크로드를 생성하고, 각 플랫폼이 과도한 조인, 롤링 윈도우 합계 및 핫 분석 쿼리를 어떻게 처리하는지 측정해보겠습니다.현실적이고 동등한 입장을 유지하기 위해 테스트 중인 세 가지 플랫폼 모두에서 사용할 수 있는 프로젝트와 워크로드를 만들었습니다.구축한 벤치마크 프로젝트는 Turborepo를 기반으로 하며 여러 애플리케이션과 패키지를 포함합니다.프로젝트에는 아래의 내용이 포함됩니다.응용 프로그램./apps/db Docker 컨테이너를 실행하기 위한 애플리케이션입니다../apps/data-generator Node.js 데이터를 생성하여 데이터베.. 2025. 5. 27.
SingleStore Notebooks, 시간 관리: Cron Scheduling 활용법 안녕하세요 에이플랫폼 입니다.SingleStore에서 노트북을 위한 cron 기반 스케줄링이 발표되었습니다!이 기능의 요청이 많았는데요, 이제 스케줄링 기능을 사용하여 SingleStore Notebook 실행을 제어할 수 있습니다.스케줄링은 표준 cron 구문을 사용하여 정확하게 워크로드를 예약할 수 있습니다.cron 기반 스케줄링은 무엇인지 그리고 SingleStore Notebooks에서 cron 기반 스케줄링을 활용하는 방법을 알려드리겠습니다. Cron 스케줄링으로 최적화된 워크플로우기존의 상대적 시간 스케줄링(Ex: "4시간 후 다음 작업 실행")은 많은 사용자에게 좋은 서비스를 제공했지만, 많은 사용자의 피드백을 통해 스케줄링 워크플로우가 개선되었습니다.일관된 실행시간 이전에는 작업을 완료하는.. 2025. 5. 7.
SingleStore MCP Server with Claude 안녕하세요, 에이플랫폼입니다.최근 AI 분야에서 많은 주목을 받고 있는 Claude!오늘은 Claude와 SingleStore MCP 서버를 연결하여 활용하는 방법을 소개해 드리겠습니다. MCP(Model Context Protocol) 서버란?MCP 서버는 AI 모델과 데이터베이스, API, 파일 시스템 등 다양한 외부 리소스 간의 연결을 표준화하는 역할을 합니다.이를 통해 AI 모델이 실시간 데이터를 활용하고, 특정 작업을 수행할 수 있도록 지원합니다.MCP 서버의 주요 기능데이터 접근성 향상: AI 모델이 실시간 데이터에 접근하여 보다 정확한 응답을 생성할 수 있습니다.기능 확장: 기존 AI 모델이 외부 도구와 연결되어 더욱 다양한 작업을 수행할 수 있습니다.표준화된 통합: 다양한 AI 모델과 호환.. 2025. 4. 24.
[Support Bulletin 08] - SingleStore 모니터링 시스템에서 Pipeline 오류? 포트 번호가 문제다! 안녕하세요, 에이플랫폼의 Support Bulletin 시리즈입니다.이번 글에서는 SingleStore 클러스터 구축 후 모니터링을 위해 생성한 Metric DB에서 발생하는 Pipeline 에러에 대해 소개해 드리려 합니다. SingleStore 클러스터 구축과 같이 서버를 구성할 때, 일반적으로 알려진 포트 번호를 피하고 다른 포트 번호를 설정하는 일은 흔히 이루어집니다.그러나 Linux의 유저 포트(1024~32767)를 벗어나 로컬 포트 범위(32768~60999)에 속하는 포트 번호를 사용할 때, 예상치 못한 문제가 발생할 수 있습니다. 로컬 포트 번호 확인 방법$ sudo sysctl -A | grep ipv4.ip_localnet.ipv4.ip_local_port_range = 32768 .. 2025. 4. 17.