NoSQLソリューションのレビューと比較を読んで、Cassandraがドキュメントに問題があるという意見にしばしば遭遇しました。 システムのアーキテクチャとCLIコマンドに精通していましたが、ドキュメントの問題は時代遅れに思えました。 しかし、アーランで何かをしようとする最初の試みはすぐにグーグルの長い時間に直面しました。 これによれば、私だけでなく自分のさらなる労働活動を促進するために、ErlangのCassandraでの基本的な操作に関する簡単な「方法」を投稿しています。
1. rif約ErlangでCassandraを使用するには、ThriftクライアントとそのためのCassandraサービスが必要です。
次のようにして、ErlangのThriftクライアントを取得できます。
svn co svn.apache.org/repos/asf/thrift/trunk thrift
次に、
thrift.apache.orgからthriftユーティリティをダウンロードし、Cassandraサービス(Windows)を生成します。
thrift-0.8.0.exe --gen erl interface/cassandra.thrift
interface / cassandra.thriftは、Cassandraディストリビューションからのthriftファイルです。
これで、Cassandraで作業するために必要なものはすべて揃っています。
2.接続と記録 -include("cassandra_thrift.hrl"). -include("cassandra_types.hrl"). * * * {ok, C}=thrift_client_util:new("localhost", 9160, cassandra_thrift,[{framed, true}]). {C1, _} = thrift_client:call(C, 'set_keyspace', ["my_keyspace"]). thrift_client:call(C1,'insert', ["00000001", #columnParent{column_family="myCF"}, #column{name="col_1",value="Hello World !", timestamp=0}, ?cassandra_ConsistencyLevel_ONE ]).
Thrift Erlangクライアントは、各操作の後に接続を返します。 これは、再帰的なErlang呼び出しに便利です。 賢明な人は、thrift_client_util:new()で受信した接続を使用することをお勧めしません。 ここを見る理由:
http :
//stackoverflow.com/questions/10503907/cassandra-thrift-erlang-insertプロセス間で接続を転送することはお勧めしません。
接続を閉じるか、Erlangプロセスを完了する必要があることを思い出してください。 あまりにも多くの接続を開くと、Erlangは「system_limit」エラーを返します。この場合、システムハンドルの制限が使い果たされたことを示します。 ウィンドウ内のハンドルの数は、Process Explorerを使用して表示できます。
スーパー列のエントリ:
{C1, _} = thrift_client:call(Connect,'insert', [Mid, #columnParent{column_family=" cf_1 ", super_column = "col_A "}, #column{name="S",value= integer_to_list(MState), timestamp=0}, ?cassandra_ConsistencyLevel_ONE])
3.読書 try thrift_client:call(Connect,'get',[Key, #columnPath{column_family="cf_1", super_column="col_A", column = "r"}, ?cassandra_ConsistencyLevel_ONE]) of {_C1,{ok,Val}} -> dosome() catch { _, {exception, {notFoundException} = Err}} -> doerr() end.
ご覧のとおり、読み取りと書き込みでは列の仕様が異なります。 そして、Thriftクライアントは例外を使用します(Erlangでは、それが何であるかをほとんど忘れていました)。
4.ドキュメント