Есть ли нереляционный эквивалент DBI в Perl?
Модуль Perl DBI позволяет мне прозрачно подключаться ко многим различным типам баз данных SQL. Существует ли эквивалентный модуль Perl для нереляционных баз данных пар ключ-значение?
Например, интерфейс, который может позволить мне начать разработку с BerkeleyDB (или даже просто с хешем Perl?), Но переключиться на что-то вроде memcachedb или CouchDB или даже облачную базу данных, подобную тем, что предлагают Amazon SinmpleDB или Google AppEngine Datastore.
(Это то, что делает Tie::Hash? В каком случае я могу найти сводку реализаций?)
4 ответа
Не уверен, что KiokuDB - это то, что вы хотите. Он имеет бэкэнды CouchDB, BDB (BerkeleyDB) и DBI.
Как правило, для каждого типа хранения пар ключ-значение вам понадобится отдельный модуль.
Например:
- Memcache через
Cache::Memcached
- CouchDB через
DB::CouchDB
- BerkeleyDB через
BerkeleyDB
- Amazon S3 через
Amazon::S3
Я не уверен, есть ли модуль для Google AppEngine Datastore - как правило, ищите в MetaCPAN то, что вам подходит.
Tie - это общий механизм "скрытия класса объекта в простой переменной". Tie::Hash - это удобный служебный класс для реализации хеш-связей.
Таким образом, привязка объектов к хешу является подходящей абстракцией для доступа к базам данных пары ключ-значение. Насколько мне известно, нет единой инфраструктуры для создания таких связей, поэтому вы должны создать Фабрику самостоятельно, чтобы изолировать свой проект от различных способов создания разных связей.