1

이것은 어리석은 질문 일뿐입니다.하지만 저는 회사에서 인턴쉽을 시작했습니다. MySQL에서 Cassandra로 큰 C 기반 알고리즘 응용 프로그램을 마이그레이션하는 방법을 알아 냈습니다. (저는이 모든 것에 완전히 새로운 것입니다.). 나는 하루 동안 이것을 어떻게 접근 할 것인가를 찾고 있었지만, 나는 여전히 약간 불분명하다. 카산드라에서 작동하려면 데이터가 비정규 화되어야합니다. 또한 MySQL에서 Cassandra로 Sqoop 또는 Bulk Loader와 같은 데이터를 마이그레이션 할 수있는 몇 가지 도구가 있습니다.응용 프로그램을 Cassandra로 이동하는 방법?

내 질문은 :이 응용 프로그램을 Cassandra로 이동하려면 Datastax의 C 드라이버를 사용하여 모든 SQL 문과 테이블을 Cassandra로 변경해야합니까? 아니면 그냥 응용 프로그램이 실행 중일 때 Cassandra의 키 공간에 MySQL 데이터를 쓰는 응용 프로그램에 뭔가를 추가하면됩니까 (예 : here)?

내가 찾은 대부분의 자료는 전체 응용 프로그램의 논리와 달리 Cassandra로 데이터를 이동하는 방법을 보여줍니다. 또한, 내가 찾은 대부분의 리소스는 구형 인 것으로 보입니다. 새로운 버전의 카산드라는 거의 동일한 읽기 및 쓰기 속도를 가지기 때문에 데이터를 완전히 비정규화할 필요가 없다고 생각합니다.

FYI : 현재 데이터는 무선 액세스 포인트에서 수집 된 약 30 개의 통계 테이블에 저장됩니다.

답변

3

신청서를 변경해야합니다. 데이터 읽기/쓰기 코드는 cassandra와 mysql간에 매우 다릅니다. 당신은 mysql에서 당신이 canandra에서 할 수 없을 많은 쿼리를 할 수있을 것입니다 - cassandra는 (SQL에 비해) 제한된 쿼리 언어 인 CQL을 사용하여 효율적인 쿼리를 지원하는 방식으로 데이터를 모델링해야합니다.

데이터 관계형입니까? 조인이 사용되고 있습니까? 아니면 대부분 시간 가치가있는 키 - 값 데이터입니까? 그것이 통계이고 조인이 없다면 다른 것보다 훨씬 쉬울 수 있습니다.

응용 프로그램 (및 다른 응용 프로그램)이 사용하는 쿼리에 따라 cassandra 데이터 모델을 모델링해야합니다. 그런 다음 cassandra 스키마를 만들고 mysql 데이터를 내보내고 가져올 수 있습니다. 이를 위해서는 Pentaho와 같은 도구를 사용하거나 마이그레이션 응용 프로그램을 작성할 수도 있습니다. 데이터베이스에 현재 얼마나 많은 데이터가 있습니까? 너무 많지 않으면 csv 내보내기 및 가져 오기 기능을 사용하지 못할 수도 있습니다.

애플리케이션을 변경해야합니다. 응용 프로그램을 변경하여 cassandra를 읽고 씁니다. 가동 중지 시간을 허용 할 수 있습니까? 그렇지 않은 경우 게시 한 링크에 요약 된 접근 방법을 고려하십시오.

이것은 사소한 것이 아닙니다. 현재 mysql에있는 데이터 모델에 따라, 이것은 주요한 작업 일 것입니다.

행운을 빈다.

+0

빠른 응답을 보내 주셔서 감사합니다. 마이그레이션해야 할 기존 데이터가 없습니다. 지금은 애플리케이션 자체가 시뮬레이션 된 데이터를 테이블에 삽입하고이 테스트 케이스에서 알고리즘을 실행합니다. –

+0

또한, 내가 아는 한, 응용 프로그램에 조인이없는 것 같습니다. 쿼리는 "select ap_radios from ap_radios where ((ap_mac = y) and (id = x))"와 같은 간단한 select 문입니다. –

+0

죄송합니다. 중단 시간이란 정확히 무엇을 의미합니까? 이것은 매우 급한 프로젝트는 아닙니다. 적어도 이주 계획을 세우고 시작하기 위해 한 달을 받았습니다. 그리고 응용 프로그램에서 실제 쿼리를 변경하려면 Datastax C 드라이버가이를 수행 할 수있는 유일한 방법입니까? –

관련 문제