본문 바로가기

SingleStoreDB/Support Bulletin12

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.
[Support Bulletin 09] - Trailing Space 에 따른 SQL 결과 차이 안녕하세요! 에이플랫폼 Support Bulletin의 아홉 번째 이야기입니다. 😊오늘은 SingleStore에서 공백 하나가 SQL 결과를 어떻게 바꿀 수 있는지 알아보겠습니다. Trailing Space란? 데이터 비교에서 중요한 이유데이터를 다룰 때 공백(Whitespace)은 단순한 빈 공간처럼 보이지만, 때로는 결과에 중요한 영향을 미칠 수 있습니다.특히 Trailing Space는 문자열 끝에 위치하는 공백을 의미하며, 데이터 저장이나 비교 시 예상치 못한 차이를 만들 수 있습니다.Trailing Space의 예제예를 들어, 아래 두 개의 문자열을 비교한다고 가정해 봅시다. 'hello' 'hello ' 사람이 볼 때는 같은 값처럼 보이지만, 일부 시스템에서는 이 둘을 다른 값으로 인식하거나.. 2025. 5. 30.
[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.
[Support Bulletin 07] - DBeaver Multiple statements 활성화 방법 안녕하세요, 에이플랫폼의 Support Bulletin 시리즈입니다.이번에는 많은 분들이 사용하는 DB 툴 DBeaver에서 발생하는 Multiple statements 에러가 발생하는 이유와 이를 해결하는 방법을 설명해 드리겠습니다.개요DBeaver에서 SingleStore JDBC 를 사용 할 때 allowMultiQueries 가 비활성화 될 시 아래와 같은 문제가 발생합니다. 예시 상황 입니다.# 예시 1# 아래와 같이 프로시저 생성 후DELIMITER //CREATE OR REPLACE PROCEDURE test.test() ASBEGIN EXECUTE IMMEDIATE 'DROP TABLE IF EXISTS test.t1; CREATE TABLE test.t1 (c1 int)';END//DEL.. 2025. 3. 17.
[Support Bulletin 06] - Division by Zero 안녕하세요, 에이플랫폼의 Support Bulletin 시리즈입니다.매번 여우 이모티콘으로 인사드리다가, 이번에는 새로운 이모티콘과 함께 인사를 드리게 되어 기쁩니다.😁앞으로도 즐겁게 소식을 전해드릴 수 있도록 하겠습니다! 개요이번에는 0 으로 나누게 되는 상황이 생길때 발생하는 문제와 해결 방안에 대해 소개해 드리려 합니다.SELECT 1/0; 이 쿼리의 실행 결과가 어떻게 나올지 아시나요? 어떤 DBMS냐에 따라 결과가 달라질 수 있겠지만SingleStore 에서는 NULL을 반환합니다. 0으로 나눴을 때 NULL이 발생하면 장점도 있고 단점도 있습니다. NULL 반환의 장점오류(Error)를 발생시키지 않아 쿼리 실행을 중단 하지 않아 전체 작업의 연속성을 유지할 수 있습니다.NULL은 '정보 없.. 2025. 3. 7.
[Support Bulletin 05] - Red Hat 9.2 Memory 할당 에러 안녕하세요 에이플랫폼 입니다.이번 글에서는 RHEL 9.2 버전의 OS 커널에서 발견된 메모리 할당 관련 버그와 이로 인해 발생할 수 있는 문제를 소개해 드리겠습니다. 📌개요Red Hat Linux 9.2 버전에서 SingleStore를 사용하던 중 시스템의 가용 메모리가 충분함에도 불구하고 종종 다음과 같이 메모리를 할당할 수 없다는 에러가 발생하는 사례가 있었습니다.ERROR 1712 (HY000): Leaf Error (127.0.0.1:3307):The operating system failed to allocate memory (MemSQL memory use 8927.00 Mb) 해당 에러는 특정한 작업에서만 발생하는 것이 아니라 Select, Load Data 명령과 같은 데이터 처리 명령.. 2025. 2. 19.
[Support Bulletin 04] - SingleStore Pipeline을 활용한 고속 CDC 적용 – Kafka Sink Connector의 한계를 넘어서다 안녕하세요, 에이플랫폼의 Support Bulletin 시리즈입니다.오늘은 타 DB에서 SingleStore로 실시간 데이터를 연동하는 방법을 다뤄보겠습니다. 📌개요다양한 CDC(Change Data Capture) 솔루션은 Source Connector로 동작하며, 소스 데이터베이스의 변경 사항을 Kafka Topic으로 Publish할 수 있습니다. 이렇게 전달된 변경 정보는 일반적으로 Kafka Sink Connector를 사용해 타겟 데이터베이스에 적용됩니다.하지만, Kafka Sink Connector는 보통 단일 인스턴스로 동작하기 때문에 운영 시스템에서 병렬로 발생하는 수많은 변경 사항을 SQL을 통해 반영하는 과정에서 성능 저하가 발생할 수 있습니다. 결과적으로 Lag 증가를 피하기 어려.. 2025. 2. 10.