나는 Cassandra- The definitive guide by E.Hewitt
을 읽습니다. 저자가 샘플 호텔 응용 프로그램의 코드를 설명하는 네 번째 장에 있습니다. 책의 이미지는 참조 용으로 제공됩니다. 여기 Cassendra 키 공간에서 열 패밀리를 삽입하는 코드를 이해하고 있습니까?
는 column Family
HotelByCity
private void insertByCityIndex(String rowKey, String hotelName) throws Exception {
Clock clock = new Clock(System.nanoTime());
Column nameCol = new Column(hotelName.getBytes(UTF8), new byte[0], clock);
ColumnOrSuperColumn nameCosc = new ColumnOrSuperColumn();
nameCosc.column = nameCol;
Mutation nameMut = new Mutation();
nameMut.column_or_supercolumn = nameCosc;
//set up the batch
Map<String, Map<String, List<Mutation>>> mutationMap =
new HashMap<String, Map<String, List<Mutation>>>();
Map<String, List<Mutation>> muts =
new HashMap<String, List<Mutation>>();
List<Mutation> cols = new ArrayList<Mutation>();
cols.add(nameMut);
String columnFamily = "HotelByCity";
muts.put(columnFamily, cols);
//outer map key is a row key
//inner map key is the column family name
mutationMap.put(rowKey, muts);
//create representation of the column
ColumnPath cp = new ColumnPath(columnFamily);
cp.setColumn(hotelName.getBytes(UTF8));
ColumnParent parent = new ColumnParent(columnFamily);
//here, the column name IS the value (there's no value)
Column col = new Column(hotelName.getBytes(UTF8), new byte[0], clock);
client.insert(rowKey.getBytes(), parent, col, CL);
LOG.debug("Inserted HotelByCity index for " + hotelName); } //end inserting ByCity index
내가 코드를 다음과 같은 어려움을 겪고에서 rowkeys
를 삽입하는 방법입니다. 특히 많은 컨테이너 (지도)가 만들어지는 이유. Mutation
오브젝트의 용도는 무엇입니까? 어떻게 행키가 삽입 되었습니까?
코드의 각 단계에서 어떤 일이 일어나는지 설명 할 수 있다면 좋을 것입니다. 이 책은 설명하지 않으며 이것이 어떻게 이루어 졌는지를 알 수는 없습니다.
P .: 자바 개발자입니다. 그래서 나는지도를 다른지도 및 기타 세부 안에
감사
2010 년 (그 책이 나왔을 때)부터 Cassandra에서 많은 부분이 변경되어 사용하지 않을 것입니다. Cassandra 데이터 모델링에 대한 더 나은 이해를 원한다면 https://academy.datastax.com/에서 제공되는 무료 강좌 몇 가지를 확인해야합니다. – Aaron
@ BryceAtNetwork23 : 링크 해 주셔서 감사합니다. 카산드라 Java API가 버전간에 많은 변화가 있을지는 확실치 않습니다. 쿼리에 대한 자습서가 작성되지 않았거나 Java API를 사용하여 테이블을 만들지 않았습니다. 대부분의 CQL은 빠른 테스트에 유용합니다. 하지만 내가 도움이되지 않을 생산을 위해 –