配列のようなオブジェクトをcassandraに格納したいのですが、cqlでもすべての要素にアクセスする必要があるため、インデックスを作成する必要があります。残念ながら、配列のサイズは動的です(ただし、次元の数ではなく、事前定義されています)。次のような配列を格納するための最も適切な方法は何でしょうか。
matrix[x][y][z]
したがって、1次元(vector[n]
)配列の場合、非常に単純になります。スーパーコラムが適切だと思います
{key=1000 ,
{ 'matrix[]' : {
key=0, {value:10),
key=1, {value:33),
...
key=n, {value:x)
}
}
}`
多次元配列(matrix[x][y][z]
)はもう少し複雑です。次のように格納します。
{key=1000,
{ 'matrix[ ][ ][ ]' :
{
key=0, {x=0, y=0, z=0, value:10),
key=1, {x=0, y=0, z=1, value:33),
...
key=whatever, {x=m, y=n, z=o, value:10),
}
}
}
しかし、どちらの場合も、column_validation_classesを定義する方法を理解できませんでした(私はpycassaを使用しています)...
また、複合コンパレータを使用して、すべてを次のような標準の列に配置してみました。
1次元の場合:
{key=1000,
{
('matrix[ ]', 0) : 10,
('matrix[ ]', 1) : 33,
...
('matrix[ ]', n) : x
}
}
または複数の次元:
{key=1000,
{
('matrix[ ][ ][ ]', 0,0,0) : 10,
('matrix[ ][ ][ ]', 0,0,1) : 33,
...
('matrix[ ][ ][ ]', m,n,o) : 10
}
}
しかし、この場合、他の情報を含む列を追加したい場合、コンパレータを適切に定義する方法がわかりません。
{key=1000,
{
('matrix[ ][ ][ ]', 0,0,0) : 10,
...
('matrix[ ][ ][ ]', m,n,o) : 10,
'whatever' : 'who cares ...',
...
}
}
さらに、このためのインデックスを作成する方法と、複合コンパレータのselectステートメントを作成する方法を理解できませんでした。
私の問題に対するあらゆる種類の提案、アイデア、または解決策をありがとう;)
乾杯