2014-06-06 5 views
0

포크,관련 칼럼 관련 데이터베이스

현재 데이터베이스웨어 하우징 관련 응용 프로그램에서 작업중인 NOSQL 관련 DB에 대한 기사를 읽기 시작했습니다.

다음 질문이 있습니다. 나는 이미 기본을 읽었다.

질문 1) 같은 열의 데이터가 함께 저장되므로 원본 전체가 열 기반 데이터베이스에서 검색되는 방법은 무엇입니까?

데이터를 다음과 같은 형식으로 저장하므로 내부적으로 열 지향형 DB에 저장됩니다.

test | test1 함께 및 5 | 10 함께.

키 1 : {이름 : 테스트, 값 : 5} 키 2 : {이름 : TEST1, 값 : 10} 우리는 키 1에 대한 데이터를 가져 오지해야하는 경우

그래서 어떻게 발생합니까? 이 별도로 다음은

B 매우 비용이 많이 드는 각 열 저장 장치에서 데이터를 선택하는 경우 모든 열이 데이터를 가져 어떤 인덱싱 메커니즘이))

A (A와 B는 내 생각이다) 주어진 원시 키? 나는이 문서의 일부를 읽고 있었다 컬럼 지향 데이터베이스가 I로 단일 컬럼에 집계 함수를 실행하는 것이 더 적합하다 발견

질문 2)/O가 작습니다.

나는 cassandra와 HBASE 같은 NOSQL 칼럼 지향 저장소에서 SUM, AVG 등과 같은 집계 함수에 대한 적절한 지원을 찾지 못했습니다.

How does Apache Cassandra do aggregate operations? realtime querying/aggregating millions of records - hadoop? hbase? cassandra? How to use hbase coprocessor to implement groupby?

질문 (아래와 같이 작성 일부 조정/해킹/더 많은 코드를있을 수 있습니다) 3)이 그것을 할 것이 좋습니다 컬럼 지향 데이터베이스 내부에서 발생 조인 어떻게?

답변

0

좋은 질문, 1) Cassandra를 사용하고 있다면 cqlsh를 사용하면 mysql 또는 다른 rdbms 저장소에 데이터를 저장할 때처럼 보입니다.

Connected to Test Cluster at localhost:9160. 
[cqlsh 3.1.7 | Cassandra 1.2.9 | CQL spec 3.0.0 | Thrift protocol 19.36.0] 
Use HELP for help. 
cqlsh> create keyspace test with replication={'class':'SimpleStrategy', 'replication_factor': 1 
     <value> 
cqlsh> create keyspace test with replication={'class':'SimpleStrategy', replication_factor': 1}; 
cqlsh> USE test ; 
cqlsh:test> create table entry(key text PRIMARY KEY, name text, value int); 
cqlsh:test> INSERT INTO entry (key, name , value) VALUES ('key1', 'test',5); 
cqlsh:test> INSERT INTO entry (key, name , value) VALUES ('key2', 'test1',10); 
cqlsh:test> select * from entry; 

key | name | value 
------+-------+------- 
key1 | test |  5 
key2 | test1 | 10 

cqlsh : 테스트>

참고 : - 당신이 행 키를 사용하거나 보조 인덱스를 사용하여 다른 컬럼에 대한 몇 가지 기준을 사용하여 선택할 수 있습니다.

그러나 HBase와의 구조가

rowkey | column family | column | value 
key1 | entry   | name | test 
key1 | entry   | value | 5 
key2 | entry   | name | test1 
key2 | entry   | value | 10 

참고를 다음과 같이한다 : - 당신은 키 또는 열 값의 매우 쉬운을 사용하여 각 행을 선택할 수 있습니다.

2) 예 nosqls는 DML에 대해서만 일괄 처리 작업도 지원합니다.

3) 조인은 nosqls 데이터 스토어에서 지원되지 않습니다. 이들은 조인을 의미하지 않습니다.

희망이 있으면 도움이 될 것입니다.

+0

친애하는 kkmishra 님, 아래에 귀하의 의견을 이해하고 싶습니다. 근본적으로 NOSQL 내부를 이해하여 새로운 응용 프로그램 용으로 사용할지 여부를 결정하려고합니다. 참고 : - 키를 사용하여 행을 선택하거나 보조 색인을 사용하여 다른 열의 일부 기준을 사용할 수 있습니다. – user1927808

+0

1) 단일 원시는 NOSQL에서 어떻게 얻어지는가? (나는 singleraw를 찾기 위해 다른 디스크 블록을 검사해야만하고 연속적이지는 않다고 생각한다.) columnArray [ 'rawKey'] = columnValue와 같은 주요 인덱스가 있는가? 2) 값이 어떻게 얻어지는가? 열 조건을 사용하면 보조 인덱스가 유지되는 방법을 의미합니까? 내가 처음에 준 샘플을 줄 수 있니? – user1927808

+0

1) 단일 행 키 데이터는 단일 노드에 상주합니다. 즉, 단일 행 키로 페치하는 경우 단일 노드에서 오는 여러 노드의 데이터를 읽을 필요가 없습니다. 2) 2 차 테이블의 경우 각 노드는 로컬에 보유하고있는 데이터 만 인덱싱하므로이 경우 단일 노드에서도 읽기가 발생합니다. – kkmishra

관련 문제