키 목록을 제공하는 것과 같이 열 패밀리 템플릿을 사용하여 cassandra 데이터베이스에서 여러 행을 업데이트 할 수있는 방법이 있습니까? 현재 업데이터 columnFamilyTemplate을 사용하여 키 목록을 반복하고 각 행에 대한 업데이트를 수행합니다. multigetSliceQuery와 같은 쿼리를 보았지만 업데이트를 수행 할 때 동등 함을 알지 못합니다.Hector를 사용하여 여러 행을 업데이트하는 방법
답변
한 번의 호출로 돌연변이 목록과 함께 키 목록을 전달할 수있는 유틸리티 메서드가 ColumnFamilyTemplate에 없습니다. mutator를 사용하여 직접 구현할 수 있습니다.
이
Set<String> keys = MY_KEYS;
Map<String, String> pairsOfNameValues = MY_MUTATION_BY_NAME_AND_VALUE;
Set<HColumn<String, String>> colums = new HashSet<HColumn<String,String>>();
for (Entry<String, String> pair : pairsOfNameValues.entrySet()) {
colums.add(HFactory.createStringColumn(pair.getKey(), pair.getValue()));
}
Mutator<String> mutator = template.createMutator();
String column_family_name = template.getColumnFamily();
for (String key : keys) {
for (HColumn<String, String> column : colums) {
mutator.addInsertion(key, BASIC_COLUMN_FAMILY, column);
}
}
mutator.execute();
잘 그것은 그렇게 보일 것 헥터
에서 작업을 수행하는 방법에 대한 기본 코드입니다.mutator.incrementCounter
mutator.deleteCounter
mutator.insert
mutator.delete
으로이 사람이 mutator.execute()을 기다리지 않고 바로 실행하기 때문에
mutator.addInsertion
mutator.addDeletion
mutator.addCounter
mutator.addCounterDeletion
:이 삽입 예입니다, 배치 돌연변이를 위해 다음과 같은 방법을 사용하십시오 마지막주의 사항 : mutator를 사용하면 한 번에 여러 열 패밀리의 여러 행에 대한 변이를 일괄 처리 할 수 있으므로 ... 일반적으로 CF 템플리트 대신에 사용하는 것이 좋습니다. NoSQL의 "push-on-write"패턴을 사용하는 기능에 대해 비정규 화를 많이합니다.
일괄 변이를 사용하여 원하는만큼 삽입 할 수 있습니다 (thrift_max_message_length_in_mb 이내). http://hector-client.github.com/hector//source/content/API/core/1.0-1/me/prettyprint/cassandra/model/MutatorImpl.html을 참조하십시오.
당신이 조심하지 않으면 연결을 끊을 것이므로 절약 할 수있는 최대 크기에 대한 언급은 중요하다고 생각합니다. 그래서 +1 –
안녕하세요 리차드는 당신이 드리프트 최대 크기와 연결을 잃어 버릴 수 있다고 설명하실 수 있습니다. 나는 최대 크기를 암시하지 않고 있고, 내가 무엇을해야하는지에 관해 알 필요가있다. – qualebs
- 1. 여러 행을 업데이트하는 방법
- 2. Hector를 사용하여 Cassandra에 새로운 고객 행을 유지하는 방법?
- 3. reloadRowsAtIndexPath를 사용하여 행을 업데이트하는 방법
- 4. 하나의 양식을 사용하여 여러 행을 업데이트하는 중
- 5. 여러 행을 업데이트하는 문 업데이트
- 6. 여러 행을 업데이트하는 linq 쿼리
- 7. SQL Server에서 여러 행을 업데이트하는 방법
- 8. codeigniter 카트에서 여러 행을 업데이트하는 방법
- 9. 동일한 시퀀스 값을 사용하여 여러 행을 업데이트하는 방법
- 10. 여러 행을 업데이트하는 방법은 무엇입니까?
- 11. SQLAlchemy에서 행을 업데이트하는 방법
- 12. 여러 값으로 여러 행을 업데이트하는 방법은 무엇입니까?
- 13. 다른 테이블을 사용하여 테이블의 행을 업데이트하는 방법
- 14. SQLCommand를 사용하여 C#에서 행을 업데이트하는 방법?
- 15. ADO를 사용하여 SQL 테이블에서 행을 업데이트하는 방법
- 16. 열의 모든 행을 업데이트하는 방법
- 17. MYSQL의 특정 행을 업데이트하는 방법
- 18. MS SQL 단일 값으로 여러 행을 업데이트하는 방법?
- 19. Datagridview에서 행을 찾고이를 업데이트하는 방법
- 20. 이전 gridview 행을 업데이트하는 방법
- 21. mysql이 for 루프를 사용하여 여러 행을 업데이트하는 경우
- 22. 동일한 mysql 테이블에서 여러 행을 업데이트하는 로직
- 23. qtableview에서 여러 행을 업데이트하는 방법은 무엇입니까
- 24. 여러 개의 데이터베이스 행을 업데이트하는 스크립트
- 25. 기존 데이터가있는 여러 행을 업데이트하는 쿼리
- 26. 여러 행을 비교하고 여러 행을 사용하여 Excel
- 27. 여러 키를 사용하여 레코드를 업데이트하는 방법
- 28. join을 사용하여 여러 열을 효율적으로 업데이트하는 방법
- 29. SQlite 쿼리를 작성하는 방법 여러 행을 업데이트하는 경우
- 30. 쿼리 결과에 따라 여러 sqlite 행을 업데이트하는 방법 (Android, SQLITE)
하나의 설명을 원합니다 : 여러 행을 삭제하려면 먼저 키 목록을 가져와 각 행 키를 하나씩 삭제해야합니다. 또는 여러 행을 삭제하는 다른 방법이 있습니다. 시나리오는 무작위로 생성되는 행 키를 모르지만 각 행의 전자 메일 또는 특정 열 값을 알고있는 것과 같습니다. – manish
당신은 Reddit을 봐야합니다 ... 그들은 Board/Message/Comment 유형의 데이터에서 Cassandra를 사용하는 최전선에 있습니다. 차라리 couchbase/bigcouch/couchdb를 사용하고 싶습니다. 카산드라를 사용하는 것이 어려운 부분은 "읽기 - 수정 - 쓰기"를 없애고 모든 수정을 카세트에 쓰는 것입니다. –
마지막 질문을 질문으로 올리면 많은 사람들에게 흥미로운 일이 될 것이라고 생각합니다. –