symfonyでCassandraを使いたいです。両方のテクノロジーを使用するのは初めてです。私はすでに行われていることについて多くの調査を行いましたが、Symfony(Doctrine ORMを使用)内からのCassandraのサポートはないようです。Doctrineを拡張してCassandraのサポートを含めるのはどれほど難しいでしょうか?この機能を含めるための最良の、最もクリーンな、そして最もアップグレード可能な方法は何でしょうか?
4 に答える
CassandraのCQL用のPDOドライバーがあります: http ://code.google.com/a/apache-extras.org/p/cassandra-pdo/
また、DoctrineのDBALはPDOの上に構築されているため、少なくとも部分的な機能を動作させることは可能だと思います。
もちろん、結合、インデックス、エンティティリレーションなどは手動で作成し、Cassandraの内部構造の知識を念頭に置いて使用する必要があります。
Javaの世界の開発者である私は、Cassandra用のJava ORMライブラリがあり、RDBMSにあるほとんどすべてのものが機能していると言えます。結局、それは可能だと思います。
DoctrineのORMはリレーショナルデータベース用であるため、オブジェクトリレーショナルマッパーと呼ばれています。カサンドラのような列指向ストアとは根本的に異なるコンセプト。カサンドラをそこに入れるチャンスはかなり少ないと思います。
ストレージとアクセスのパターンがまったく同じではないことが必要な作業に追加します。
Doctrineのエコシステムには、MongoDBとCouchDBをサポートするODM(オブジェクトドキュメントマッパー)を作成する人々がいますが、ドキュメント指向データベースも別の遊び場です。どちらもドキュメント指向のデータベースですが、これら2つでさえ互いに大きく異なります。
これらのプロジェクトのいずれかでカサンドラを引き受けるように誰かを説得することはできないと思います。
私個人としては、カサンドラの最大のショーストッパーは、それに付随する倹約と関連です。そうは言っても、それは私の個人的な意見であり、Cassandra用の優れたPHPラッパーの実装を妨げるものは何もありません。
また、CassandraラッパーをカスタムSymfonyバンドルなどとしてリリースしない理由もありません。
Symfony2をきっかけに、多くの人々がコアから独立したプロジェクトを開始し、追加の機能セットをカバーするバンドルを提供しました(たとえば、Friends of Symfony)。したがって、これを説得したい場合は、先に進んで何かを開始し(Githubなど)、それがどのように受け取られるかを確認してください。
cassandra用のアクティブなPHPクライアントがあります:https ://github.com/thobbs/phpcassa
Thrift APIと直接格闘する必要がないように、そこから始めてください。
私は実際にCassandra用のSymfony2バンドルを探していました。Cassandra wikiには、Cassandra用のPHPクライアントがあります。