나는 PenWag.com을 위해 MySQL에서 Cassandra로 변환하는 과정에있다. Cassandra에서는 GUID로 키 조작 된 사용자를 저장하지만 사용자는 GUID가 아니라 이메일로 로그인합니다. 사용자를위한 열쇠 인 GUID는 두 가지 이유로 이메일보다 의미가 있습니다. 실용적인 관점에서 모든 SuperColumns를 사용하여 행을 변경하거나 삭제/추가하는 것은 너무 성가신 것 같습니다. 이론적 인 견지에서 볼 때 여전히 동일한 사용자이지만 핵심이 왜 바뀌어야합니까?Cassandra/BigTable 데이터 모델 - 색인을 만드는 가장 좋은 방법은 무엇입니까?
그럼에도 불구하고, 여기 내 질문 : 나는 별도의 ColumnFamily에서 로그인을 지원하기 위해 전자 메일 -> GUID를 매핑하는 색인을 작성하고 있습니다. 표준 형식의 CF입니다. 열 이름이 전자 메일이고 값이 GUID입니다. 모든 매핑에 대해 전체 SC를로드하는 것을 피하기 위해 Super가 아닌 Standard입니다. "이메일 변경"을 지원하는 것은 간단합니다. 단지 삭제/추가 항목 일뿐입니다. 그러나이 방법 대신 인덱스를 열 대신 행으로 저장하는 것이 좋습니다. 행 키는 전자 메일이고 열은 GUID를 보유합니다. 관리 할 열 (GUID) 만 있으므로 해당 행을 삭제/추가하는 것은 번거롭지 않습니다.
두 방법 중 하나라도 작동하는 것으로 보입니다. 각 장단점은 무엇입니까? 모범 사례가 있습니까?
나도 이메일을 사용 :
나는 0.7 당신은 당신의 키 입력에 의해-UUID 사용자 데이터의 나머지 행에 이메일 열을 가질 수 및 인덱스에 카산드라를 요구하기 때문에 그 자격 주소는 키이고 GUID는 열입니다. 따라서 하나의 열과 많은 행이 있습니다. 그렇게하면 데이터가 클러스터 전체에 퍼질 수 있습니다. – Zanson