2013-09-30 4 views
0

netflow 프로브에서 수신 한 netflow 패킷을 Cassandra에 저장하려고합니다. 효율적인 목적으로 각 패킷을 별도의 행에 저장하려고합니다. 누군가가 netflow 패킷을 저장하기에 충분한 정밀도를 사용할 수있는 rowkey를 제안 할 수 있습니까? 나는 약간의 시간 함수를 사용하려고 생각하고 있었다. 패킷간에 충돌이 발생하지 않을 정도로 정확합니까? Cassandra에 액세스하기 위해 libQtCassandra 라이브러리를 사용하고 있습니다. 감사합니다 ....네트워크 패킷 저장을 위해 Cassandra에서 "time"을 행 키로 사용합니다.

답변

0

카산드라 밖에서 사용할 수있는 정밀도의 시간 함수를 잠재적으로 사용할 수 있으며 값을 삽입하기 만하면됩니다. 대부분의 플랫폼은 밀리 초 단위의 시간을 얻을 수있는 기능을 제공합니다.

Linux 기반 시스템에서는 밀키 초 단위의 유닉스 타임 스탬프를 사용할 수 있습니다. 당신은 로우 키형이 아마 LongType이 될 것이라고 생각합니다.

다른 메모에서 모델에 "스키니 행"또는 "와이드 행"이 표시됩니까? 범위 내의 행을 스캔 할 수 없으므로 데이터를 너무 많은 행에 분산시키지 않으려 고합니다. 어쩌면 당신은 초 단위까지의 시간이 당신의 rowkey이고, 그 초의 특정한 밀리 세컨드가 열 이름으로서 실제 값을 가리키는 모델을 고려할 수 있습니다. 같은

뭔가 : 물론

unix_timestamp_in_seconds => [ { millisecond_count: value}, { millisecond_count: value}, ...] 

, 여기에 내가 밀리 초 정밀도를 가정하고하는 것은 충분하다. 마이크로 세컨드 정밀도가 필요하다면, 그것은 정말로 당신의 플랫폼에 달려 있습니다.