내 문제를 해결할 수있는 기술 (예 : HBase, Raiku, Cassandra 등)을 제안하면 Stackoverflow 커뮤니티에서 도움이 될지 궁금합니다. 우리가 업데이트 및 쿼리10s 테라 바이트의 순서로 실시간으로 쿼리하려는 큰 데이터 집합이 있습니다. 우리의 데이터 세트는 사용자 ID와 하나 이상의 기능 (일반적으로 약 10)을 포함하는 픽셀 스트림입니다. 가능한 모든 기능 번호는입니다. > {사용자 ID 해시, 사용자 ID 해시, ...}스트리밍 카운팅, 스케치 및 대형 세트 교차를 지원하는 아키텍처 찾기
FEATUREID_TO_COUNTER_TABLE - 기능 ID : 기능 ID를 -
FEATUREID_TO_USER_TABLE :
우리는 같을 것이다 우리의 데이터 모델을 상상하는 > {서사시 이후 시간 -> HyperLogLog byte blob}
사용자 ID의 해시로 정렬 된 정렬 된 사용자 ID 집합을 유지하고 싶습니다. 새로운 ID의 해시 값이 낮 으면 이전 ID를 삭제하는 각 FEATUREID_TO_USER_TABLE 항목에 대해 ~ 200k를 유지하는 것이 좋습니다.
우리는 (반드시 SQL로 표현되지 않음) 다음과 같은 작업을 지원하기 위해 가게를하고 싶은는 :
select FeatureID, count(FeatureID) from FEATUREID_TO_USER_TABLE where UserID in
(select UserID from FEATUREID_TO_USER_TABLE where FeatureID = 1234)
group by FeatureID;
그리고
update FEATUREID_TO_COUNTER_TABLE set HyperLogLog = NewBinaryValue where FEATUREID_TO_COUNTER_TABLE.id = 567
우리는 기계를 통해이 데이터에 의해입니다 샤딩하는 가장 쉬운 방법을 생각 사용자 ID. 어떤 아이디어에 대한
감사합니다, 마크
답변 해 주셔서 감사합니다. 나는 원래 SQL 예제를 약간 망쳤다 - 나는 단지 그것을 바로 잡았다. 기본적으로 FeatureID A를 가진 사용자는 FeatureID B를 가진 사용자와 교차로를 할 수 있기를 원합니다. 복잡한 부분은 일종의 해시로 사용자 ID 집합을 스케치하고 싶습니다. 많은 수의 기능을 교차시킵니다. – Mark