Есть ли нереляционный эквивалент 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 - это удобный служебный класс для реализации хеш-связей.

Таким образом, привязка объектов к хешу является подходящей абстракцией для доступа к базам данных пары ключ-значение. Насколько мне известно, нет единой инфраструктуры для создания таких связей, поэтому вы должны создать Фабрику самостоятельно, чтобы изолировать свой проект от различных способов создания разных связей.

CHI выглядит многообещающе, от создателя Cache:: Cache.

Другие вопросы по тегам