2014-03-05 6 views
0

RDBMS의 여러 데이터 소스를 공통 데이터 레이어로 Cassandra에 푸시해야합니다. 이러한 각 데이터 소스는 서로 다른 필드를 가지며 그 사이에 공통 글로벌 ID가 없습니다. 오히려, 전역 고유 ID는 여러 필드로 구성됩니다. 데이터를 채우기 위해 Cassandra에서 이것을 모델링하는 방법은 무엇입니까?Cassandra에서 여러 데이터 소스를 함께 결합하는 방법

나는 C의 *의 모든 필드와 테이블을 작성하는 경우 :

테이블 T (datasrc1_uid UUID, datasrc1_field1 텍스트, datasrc1_field2 텍스트를 만들기 ..., datasrc2_uid UUID, datasrc2_field1 텍스트를 datasrc2_field2 텍스트, PRIMARY KEY (datasrc1_uid, datasrc2_uid).

는 T에서/업데이트 내가 응용 프로그램 계층에서/가입 동시에 datasrc1 및 datasrc2 모두에 연결을 열고 본질적으로 구성해야 할 것을 삽입하려면 그렇지 않으면, 난 se를 만들 수있다. 데이터 소스의 각 parate 테이블 (2보다가, 이것은 단지 예입니다!) :

테이블 DS1 (datasrc1_uid UUID, datasrc1_field1 텍스트 .. PRIMARY KEY (datasrc1_uid, datasrc1_field1 만들기, ..);

그런 다음 다시 응용 프로그램 계층에서 가입 (및 삽입을 유지하기 위해 BATCH 문을 사용하여/원자 갱신, 테이블 DS2 (datasrc2_uid UUID, datasrc2_field1 텍스트 ..를 PRIMARY KEY (datasrc2_uid, datasrc2_field1 ..) 만들기 ) 이것은 단 하나의 Join 문 대신 단계적으로 수행해야하기 때문에 어렵습니다. 일부 데이터는 메모리에 보관됩니다. 이는 DS1/DS2 간의 간단한 조인을 통해 RDBMS에서 가능했을 것입니다. Any 이것을 모델링하는 다른 방법은 무엇입니까?

감사합니다, 매트

답변

2

엄지 규칙 - 쿼리를 기반으로 테이블을 모델링합니다. 필요에 따라 하나의 쿼리에서 하나의 쿼리를 읽을 수 있도록 많은 C * 테이블에 데이터를 씁니다.

가 나는 모델링 테이블이 쿼리를 기반으로해야한다고 동의 https://datastaxacademy.elogiclearning.com/

+0

에서 사용할 수있는 좋은 코스입니다 -하지만 내 쿼리 주위에 모든 필드에서 데이터를 가져 오는 것은 –

+0

그런 다음 당신이 필요로하는 모든 분야를 쓰기 .. 함께 결합 하나의 테이블에. –

+0

글쎄, 그게 문제 야. 모든 필드를 동시에 사용할 수있는 것은 아니다. 그래서 내가 몇 가지 필드를 채울 DataSource1에서 삽입을 할 수 있지만 어떻게 든 다른 나머지 필드를 채우려면 Datasource2 함께 가입해야합니다 .. –

관련 문제