문제

나는 옵션을 평가하기 위해 효율적인 데이터 저장에서 Java.데이터 세트는 각 데이터 값을 가진 이름이 기본 핵심이다.예:

Name: A|B|C:D
Value: 124
TimeStamp: 01/06/2009 08:24:39,223

주식 가격에 주어진 시점에서,그래서 그것은,내 생각,클래식 시계열 데이터 패턴이다.그러나 내가 정말 필요한 일반적인 RDBMS 솔루션과 함께 작동하는 모든 합리적인 JDBC 호환되는 데이터베이스는 다음과 같은 방식으로 사용하는 최대 절전 모드.결과적으로 시리즈의 확장과 같은 데이터베이스는 Oracle 하지 않은 정말 옵션으로 나가고 싶 구현자를 사용할 수 있는 자신의 JDBC/수 있는 최대 절전 모드 데이터베이스입니다.

여기에 도전은 단순히 대규모의 볼륨을 수 있는 데이터에 축적 짧은 기간 동안의 시간입니다.지금까지,나의 구현은 주위에 초점을 맞추고 정의하는 정기 롤업 및 퍼지는 일정한 원시 데이터 집계로 날,주별,월별 등입니다.테이블지만,단점은 초기 손실의 세분화와 약간 불편의기간 불일치 사이의 기간 동안에 저장된 다른 집계가 있습니다.

도전은 제한 옵션이 있기 때문에 절대적 제한이 얼마나 많은 데이터를 수 있는 육체적으로 압축을 유지하면서 원본 데이터의 수준을,그리고 이러한 제한은 악화된 이 지침의 관계형 데이터베이스를 사용하며,일반 JDBC 할 수 있에서 가깝습니다.

대출은 추상적인 개념에서 고전적인 데이터 압축 알고리즘,그리고 레버리지를 도입하는 사실 많은 연속 값이 동일한 이름의 키할 수 있습 될 것으로 예상된 동일한,나있는 경우 방법이 내가 원활하게 할 수 있습의 수를 줄이 저장된 레코드에 의해 conflating 반복되는 값을 하나로 논리적인 행는 저장하는 카운터 표시,효과적으로는,"다음 n 레코드가 동일한 값을".의 구현는 간단한 것 같지만,무역 데이터 모델은 현재 미국 복잡하에 대한 쿼리를 표준을 사용하여 SQL,특히 사용할 경우 어떤 종류의 집계 SQL functions.이 크게 줄여 유용성의 데이터를 저장하기 때문에 복잡한 사용자 지정 코드 데이터를 복구할 수 있 다시"압축 해제된"상태가 결과로서는 임피던스 불일치 수백명의 도구할 수 없는 렌더링 이 데이터를 제대로.

나는 가능성을 고려했을 정의하는 사용자 정의 형식이 최대 절전 모드는 것이 기본적으로"이해"압축된 데이터를 설정하고 타격은 그것을 다시 돌아와 쿼리 결과를 가진 동적으로 만들어진 합성의 행이 있습니다.(데이터베이스 읽을 것입니다만 모든 클라이언트를 제외하고 단단히 통제된 입력 스트림).의 여러 가지 도구가 생각했던 것입과 통합 Hibernate/POJO 외에도 원 JDBC(eg.Jasperreports 기능)그러나 이것은 정말 주소 aggregate 기능 문제와 아마의 무리가 다른 문제 뿐만 아니라.

그래서 나는 부분 방법을 사직하는 자신을 가능하게 하는 데 사용하기 위하여 독자적인[가능한 SQL 데이터 저장(어떤 제안을 평가)및 다음에 초점을 맞출 가능성이 적은 복잡한 작업의 쓰는 의사 JDBC 드라이버가 적어도 쉽게 통합과 외부 도구입니다.

내가 들을 참조하라는 것"비트 포장된 파일"메커니즘으로 이를 달성하기 위해 데이터를 압축하지만,내가 알지 못하는 모든 데이터베이스를 공급하고 마지막 것은 제가 하고 싶(또는 할 수 있습,정말....) 이 쓰는 내 자신의 데이터베이스입니다.

어떤 제안이 있거나 통찰력?

도움이 되었습니까?

해결책

나는 a를 볼 것이다 열 지향 데이터베이스. 이런 종류의 응용 프로그램에 좋을 것입니다

다른 팁

Hibernate(또는 JPA 솔루션에)잘못된 도구입니다.

JPA/최대 절전 모드지 않은 경량의 솔루션입니다.에서 높은 볼륨 응용 프로그램,오버헤드지만 중요하지만 금지합니다.당신이 정말로 볼 필요가 있을 그리드 및 클러스터 솔루션.지 않의 개요를 다양한 기술을 여기에.

는데에 경험 많은 금융시장 정보 시스템입니다.의 몇 가지를 말한 것이 붙어를 저:

  • 당신은 많은 원시 데이터를;
  • 에 적용할 다양한 집계하는 데이터를(예를 들어 오픈/high/low/근접 매일 요약);
  • 가용성을 높입니다 아마제(항상 그것은에서 이러한 종류의 시스템);고
  • 낮은 대기 시간은 아마제(ditto).

지금에 대한 격자/클러스터 유형 솔루션을 나는 그들을 분할하게 두 가지로 카테고리:

  1. 반도 같은 솔루션의 일관성 또는 테라코타;고
  2. Javaspaces 기반 솔루션 같은 GigaSpaces.

내가 사용되는 일관성이 많고 지도 솔루션은 좋지만 그것이 문제가 될 수 있습도.일관성도 있을 수 있는 청취자들에 사용할 수 있습니다 이런 종류의 것:

  • 시장 가격 알림이(사용자가 원하는 때 알림이 표시 가격이 일정 수준에 도달);
  • 파생상품 가격결정(예를 들어 exchange 거래되는 옵션을 가고 싶은 것을 배울 수 보고서를 읽어보십시는 경우 기본 보안 변경 마지막 거래 가격);
  • 무역을 매칭/예약 시스템을 일치시킬 수 있습받은 무역에 대한 알림을 화해를 목적으로;
  • etc.

이러한 모든 할 수 있는 청취자와 그에 일관성 청취자 예를 들어 있어야 저렴한,지도하는 것과 같은지도는 수신기보다는 기록 뭔가 다른 지도하고 이 수 있습니 체인에 대한 잠깐.또한,수정하여 캐시 항목은 문제가 될 수 있습(이 있지만 메커니즘을 다루는 그런 종류의 문제도나는에 대해 얘기하는 거에요 상황을 끄고 시장 가격 알림지 않도록 트리거 두 번째 시간).

내가 찾 GigaSpaces 유형 그리드 솔루션을 훨씬 더 매력적인 이런 종류 응용 프로그램입니다.읽기(또는 파괴적인 읽기)동작은 매우 우아하고 확장 가능한 솔루션을 얻을 수 있습 트랜잭션 grid 업데이트 sub-millisecond 성능입니다.

을 고려 두 개의 클래식기 아키텍쳐:

  • 요청/응답:나쁜 메시지를 차단할 수 있습 큐고 당신이 할 수있는 동안 많은 발신기와 수신기(확장성을 위해)조정까지 파이프의 수은 항상 간단하지 않습니다;고
  • 게시/구독:이 분리는 송신자와 수신자 부족하지만 확장성에는 여러 개 있는 경우 구내구독자 그들 각각의 메시지를 수신하지 않는(반드시 당신이 원하는 무엇으로 말할 예약 시스템)가 있습니다.

에 GigaSpaces,파괴적인 읽기 좋아하는 확장 가능한 게시 구독 시스템이고 읽기 동작은 다음과 같은 전통적인 publish-구독한 모델입니다.가 지도와 JMS 구현의 상단에 내장되어 그리드 및 그것을 할 수 있습 FIFO 주문.

지금 whaqt 에 대한 지속성을 듣고 당신이 물어?지속가 결과 결정의 다른 모든 물건입니다.이러한 종류의 응용,아 지속성으로 서비스 모델(아이러니하게도에 대한 글 최대 절전 모드지만 그것에 적용되 아무것도).

기본적으로 이 수단의 날짜를 저장하는 곡을 비동기와 그것은 작품과 함께 멋지게 하는 데이터 요약.당신 같은 있을 수 있 수신하는 서비스 무역에 대한 알림을 지속 사람들이 그것에 관심있(집계하는 메모리에 필요한 경우).당신이 할 수 있는 열려있는/high/low/닫기 가격이 방법입니다.

높은 볼륨 데이터는 당신이 정말 원하지 않을 쓰고 그것은 모든 데이터베이스에 있습니다.지 않는 동시에 어쨌든.영구 저장소에 있는 데이터 웨어하우스는 아마도 더 많은 경로를 당신이 가고 싶은 그러나 다시 이에 따라 요구 사항,수량,etc.

그것은 복잡한 주제와 내가 정말 감동적이지 않습니다.희망하는 데 도움이 됩니다.

당신은 아마도 듣는 것이 흥미로울 것입니다 Michael Stonebraker의 Money에서 프레젠테이션 : Tech. 그는 당신이 필요로하는 많은 것들을 쳤으며, 큰 3 개의 코끼리 (SQL Server, Oracle 및 DB2)가 어떻게 진드기 상점의 요구에 맞을 수 없는지 보여줍니다 (당신이 건축하는 것처럼 보입니다). 그는 칼럼 상점을 넘어 파고 들었습니다. 제가 올바른 방향으로 동의합니다. 그는 심지어 압축과 속도에 대해 논의합니다.

흥미로운 링크는 다음과 같습니다.

많은 JDBC 가능 데이터베이스 관리 시스템 (예 : Oracle)은 물리적 저장 엔진에서 압축을 제공합니다. 예를 들어, Oracle은 감압 오버 헤드가없는 "압축"테이블이라는 개념을 가지고 있습니다.

http://www.ardentperf.com/wp-content/uploads/2007/07/advanced-compression-datasheet.pdf

답변 주셔서 감사합니다.

Cletus, 나는 개요에 감사하지만, 내가 할 수없는 트레이드 오프 중 하나는 DB 유연성과 JDBC/Hibernate와의 호환성을 포기하여 사용 가능한 모든 도구를 사용할 수 있도록하는 것입니다. 더욱이, 나는 이것을 명확하게 진술하지 않았지만, 나는 사용자가 [아마도 비싼] 상용 솔루션을 채택하도록 강요하고 싶지 않습니다. 데이터베이스 브랜드 X가있는 경우 사용하겠습니다. 그들이 신경 쓰지 않는다면, 우리는 오픈 소스 데이터베이스 브랜드 Y를 권장합니다. 기본적으로 응용 프로그램에는 여러면이 있으며 그 중 하나는 들어오는 데이터의 저장소이지만 다른 얼굴은보고 소스와 i입니다. 진짜 보고서 생성기를 작성하는 사업에 들어가고 싶지 않습니다.

아직 테스트를 실제로로드하지는 않았지만 매우 감동했습니다. luciddb. 열 지향 데이터베이스이며 우수한 쿼리 성능과 겉보기에 좋은 데이터 압축을 제공합니다. JDBC 드라이버가 있지만 최대 절전 모드 방언은 아직 존재하지 않습니다. 또한 사용자 정의 변환을 지원하는 요소로 반복 및 연속 값을 하나의 "행"으로 압축하려는 아이디어를 원활하게 구현할 수 있지만 쿼리 시간에 여러 "합성"행으로 다시 날려 버릴 수 있다고 생각합니다. 쿼리 발신자에게. 마지막으로, 다른 JDBC 지원 데이터베이스 테이블을 LUCIDDB에서 전 놓칠 수있는 외국 테이블 의이 멋진 기능을 지원합니다. 나는 이것이 다른 데이터베이스에 대한 어느 정도의 지원을 제공하는 데 매우 중요 할 수 있다고 생각합니다.

포인터에 감사드립니다, Javaman. 그것은 나를 luciddb에 구역에 빠뜨렸다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top