2013-07-08 16 views
43

Cassandraの2つのCQLデータタイプtextvarcharの違いを知っている人はいますか? Cassandraのドキュメントでは、両方のタイプを「UTF-8でエンコードされた文字列」と説明しています。Cassandra:text vs varchar

+0

ドキュメントへのリンクを提供できますか?私はどちらも聞いたことがない。しかし、私が聞いたことはAsciiTypeとUTF8Typeの違いが自明であることです。 –

+0

@baba CQL3で使用される名前です。 – Raedwald

+0

はい、時間がかかりましたが、私は考えました:) –

答えて

49

textは、varcharの別名です。

ドキュメント:

EDIT
がここにありますC* 1.2 docsへのリンクテキストとvarcharの情報は同じですが、このドキュメントにはいくつかの追加のデータ型が含まれています。

+2

TEXTはVARCHARのエイリアスですか?指定されたリンクのどれでも見つけることができません – analogue

+0

"エイリアス"の場合はCtrl + Fを押しても、必要な答えが得られません。 CQL3 Documentation - Apacheリンクの「ネイティブデータ型に関する情報」を検索すると、varcharとtextの両方の説明が表示されますが、それらは同じです。また、[this](http://www.thefreedictionary.com/Aliases) –

+0

@analogue [データ型について](http://docs.datastax.com/en/cassandra/1.2/cassandra/tools/use_about_data_types_c.html)内部の 'UTF8Type'はCQL名' text、varchar'にマッチしていると言います。 – karmakaze

9

おそらくCQLストレージタイプを意味していると思いますが、そうでない場合は私の答えを無視します。

CQLでは、カサンドラの内部から遠ざかっている傾向があります。それが良いものであろうと悪いものであろうと、解釈にはオープンです。しかし、関連性のあるものは、最新のバージョンのCQL開発者が、cassandraの内部構造に深く関わっていない人にとってよりよく知られている構文を思いついています。あなたはこのSO質問に見てみるとしたら、あなたは状況の素敵なイラストでしょう

:カサンドラへの外国人の最近のCQLのバージョン、いくつかの別名では、 Creating column family or table in Cassandra while working Datastax API(which uses new Binary protocol)

を、しかし非常によくDBAのに知られています出現し始めた。たとえば、cassandra ColumnFamilyのネイティブはTableでエイリアス化されており、textはvarcharのエイリアスであり、その逆もあります。また、それが良いことであるかどうかは、意見の問題です。

結論として、varcharとtextは同じ意味で使用できます。

3

これは私がカサンドラで始まったときにも私を投げ捨てました。

textとvarcharの両方がUTF8でエンコードされた文字列であり、互いに同義語です。つまり、まったく同じものです。

MS SQLのようなリレーショナル・ワールドからのものであれば、エンティティの主フィールドとしてこれらのタイプ(特にTEXT)を使用することを躊躇しているかもしれません。 TEXTは、通常、主キーを3番目の通常の形式のリレーショナルマインドに叫ばないテキストコンテンツの大きな塊に関連付けられます。しかし、すべてのCassandraタイプは基本的にディスク上に16進バイト配列として格納されているため、プライマリキーとして使用すると実際の重要なパフォーマンスはありません。