Cassandra では、データを行に格納します。各行には、行キーといくつかの列があります。各列には名前と値があります。通常、列名と値 (および行キー) は単一の値 (int、long、UTF8 など) ですが、行キー、列名、および列値で複合値を使用できます。複合値は、何らかの方法で一緒にシリアル化された値の数です。
時間の経過とともに、多くの言語固有の API が開発されました。これらの API は、上で説明した理解から始まり、それに応じて列ファミリーへのアクセスを提供します。Java クライアント API である Hector は、私が最もよく知っている API ですが、他にもあります。
CQL は、Cassandra テーブルを SQL/JDBC 方式で使用する手段として導入されました。Cassandra のすべての機能が最初は CQL でサポートされていたわけではありませんが、CQL は時間の経過とともにますます機能的になっています。
複合列の名前と値が必要であることは間違いありません(それがあなたの求めているものだと思います)。問題は、(私が理解しているように) CQL がまだそのレベルのネイティブ サポートに進化していないことです。それが起こるかどうかは私にはわかりません。
必要に応じて複合値を使用して、目的の列ファミリー スキーマの定義を完了することをお勧めします。それが完了したら、Cassandra 列ファミリーにアクセスするために使用できるさまざまな API を調べて、目的のスキーマを最もよくサポートするものを選択してください。
使用している言語については言及していません。Java でコーディングしている場合は、CQL ではなく Hector をお勧めします。