Доступ к закрытой схеме в PostgreSQL с помощью Pentaho

Позвольте мне начать с того, что то, что я знаю о Pentaho, не заняло бы и одного абзаца. Я лучше разбираюсь в PostgreSQL. Я работаю с несколькими подрядчиками, которые создают набор ежемесячных отчетов в Pentaho (v. 4.5) для моей компании. Некоторые данные необходимо пройти через процесс ETL и собрать для отчетов. С точки зрения dba(ish), я хотел бы переместить эти таблицы в отдельную схему PostgreSQL.

Я знаю, что Pentaho часто используется с MySQL (у которого нет схем), и я обеспокоен тем, что это может вызвать проблемы. Я кое-что погуглил и нашел не так уж много совпадений по теме, но нашел закрытый ошибка, возникшая несколько лет назад, что означает, что функциональность должна поддерживаться.

прежде чем я это сделаю, я хотел бы узнать, знает ли кто-нибудь причину, по которой это не удастся или это будет плохой идеей. (или если вы сделали это, и это отлично работает, пожалуйста, дайте мне знать и об этом).

Заключительные примечания: я использую PostgreSQL 9.1.5, и у меня нет доступа к экземпляру Pentaho, чтобы даже проверить это самому. И я надеюсь, что хорошие люди в сообществе Stackoverflow поделятся своим опытом и избавят меня от необходимости устанавливать его, а часы игры / тестирования, чтобы получить представление об этом, - плохая идея.

РЕДАКТИРОВАТЬ:

Я как бы знал, что этот вопрос был немного расплывчатым, но я надеялся, что кто-нибудь прочитает его и поделится своим опытом. Итак, позвольте мне объяснить это более четко и задать больше явных вопросов.

Я ничего не сделал. Я не знаю Пентахо. Я не хочу изучать Pentaho (не то чтобы с Pentaho что-то не так... Просто сейчас это не то, что меня интересует). Моя компания наняла подрядчиков (я их не нанимал). У них есть опыт работы с Pentaho, но с MySQL. Они ничего не знают о PostgreSQL. Есть некоторые важные различия между PostgreSQL и MySQL. В том числе тот факт, что PostgreSQL поддерживает схемы (тогда как MySQL использует отдельную базу данных... похожая концепция может вести себя по-разному в некоторых отношениях). Некоторым ORM (и инструментам) это не очень нравится... например, фреймворк Django по-прежнему не полностью поддерживает схемы в Postgresql (я знаю это, потому что часто использую Python и Django, и моя жизнь становится намного лучше, когда я храню вещи в «общедоступной» схеме). Из-за моего опыта работы со схемами Django и PostgreSQL я немного опасаюсь переноса этих данных в новую схему.

Я понимаю, что где бы ни находились таблицы, им потребуются разрешения для доступа к данным.

Мои явные вопросы:

  • Используете ли вы Pentaho для доступа к базе данных PostgreSQL для доступа к таблицам в схемах, отличных от «общедоступных» (по умолчанию).
  • Если да, то он просто работает (без проблем)?
  • Если у вас возникли проблемы, не могли бы вы поделиться со мной (и сообществом Stackoverflow) любыми онлайн-ресурсами, которые вам помогли? Или вы хотели бы подробно описать, что вы помните здесь?
  • Знаете ли вы что-нибудь, что просто не будет работать правильно? Например, открытый баг в Pentaho, связанный с этой темой.

Опять же, это не ваш стандартный вопрос. Я надеюсь, что у кого-то есть опыт, и он готов поделиться им здесь и избавить меня от необходимости тратить время на настройку нового экземпляра Pentaho и попытки изучить Pentaho достаточно хорошо, чтобы протестировать его и т. д.

Спасибо.


person David S    schedule 22.10.2012    source источник
comment
Извините, я не понимаю. В чем именно заключается ваш вопрос?   -  person a_horse_with_no_name    schedule 22.10.2012
comment
@a_horse_with_no_name ... Я думал, что ясно выразился. И я цитирую: прежде чем я это сделаю, я хотел бы узнать, знает ли кто-нибудь причину, по которой это не удастся или это будет плохой идеей. (или если вы сделали это, и это отлично работает, пожалуйста, дайте мне знать и об этом).   -  person David S    schedule 22.10.2012
comment
Что вы пробовали? Вы создали новую схему, скопировали в нее некоторые таблицы и попытались запустить отчеты по этим таблицам? Что произошло, когда вы это сделали? Любые сообщения об ошибках? Кроме того, под непубличным вы подразумеваете схему с каким-либо именем, кроме public, или вы имеете в виду схему с каким-либо именем, кроме public, которое имеет ограниченные права?   -  person Mike Sherrill 'Cat Recall'    schedule 22.10.2012
comment
@Catcall. Пожалуйста, смотрите мои правки. Спасибо.   -  person David S    schedule 23.10.2012


Ответы (4)


Шаги Pentaho (входные данные таблицы, выходные данные и т. д.) обычно позволяют указать схему базы данных.

Я провел быстрый тест, используя PDI и наш экземпляр Postgres 8.4, и смог исследовать, читать и записывать таблицы в разных схемах.

Так что, я думаю, это разумное направление. Надеюсь это поможет.

person FremenFreedom    schedule 22.10.2012
comment
Большое спасибо за ваш ответ! - person David S; 23.10.2012
comment
@ Дэвид С: Нет проблем. Я не очень хорошо знаком с последствиями использования различных драйверов Postgres JDBC в разных версиях, но текущая версия инструментов проектирования Pentaho поставляется с драйверами 8.4. Возможно, это не проблема, или ваши подрядчики могли обновить, но я подумал, что упомяну об этом. - person FremenFreedom; 23.10.2012
comment
Хороший совет. Я запомню это. Еще раз спасибо за помощь. - person David S; 23.10.2012

Два пути, по которым вы можете пойти:

1) Что говорилось в предыдущем сообщении («Шаги Pentaho (входные данные таблицы, выходные данные и т. д.) обычно позволяют указать схему базы данных».)

2) В подключении к базе данных, вкладка «Дополнительно», «Предпочитаемое имя схемы».

Если вы работаете с разными схемами, вы можете создать одно соединение с базой данных для каждой схемы. При таком подходе вы можете оставить поле схемы в шагах ввода/вывода пустым.

person Milos    schedule 30.10.2012

Мы используем сервер MS SQL, и я могу сказать вам, что Pentaho действительно борется с идеей схемы. Многие из их приложений позволяют вам выбирать схему, но Pentaho, как вы сказали, создан для использования чего-то вроде mySQL.

Заставьте пользователя базы данных Pentaho работать так, как если бы он работал в MySQL.

Мы сделали пользователя базы данных по умолчанию dbo, затем мы структурировали наши таблицы, такие как dbo.dimDimension, dbo.factFactTable и т. д. По сути, используйте dbo только для целей Pentaho. (Или любую схему, которую вы хотите использовать по умолчанию.)

person Max    schedule 06.11.2012
comment
Большое спасибо за Ваш ответ! Это очень ценится. - person David S; 09.11.2012

Я активно использую PDI и PgSQL каждый день с кучей разных схем. Это работает нормально. Единственная проблема, с которой вы можете столкнуться, — это неприятная практика Pg заставлять идентификаторы без кавычек использовать нижний регистр вместо верхнего. Вскоре я понял, что все стало проще, когда я установил для свойства «Расширенное соединение» значение «Цитировать все в базе данных».

Да, вы должны заключать все в кавычки, когда набираете SQL, если PDI не делает этого за вас, но это работает достаточно хорошо. Не экспериментировал с принудительным переводом всех идентификаторов в нижний регистр, но я ожидаю, что это тоже сработает.

И да, также используйте «Название предпочтительной схемы», но имейте в виду, что некоторые шаги используют эту опцию, а другие нет. Вы не можете, например, ожидать, что он добавит имена схем в SQL, который вы вводите на этапе ввода таблицы.

Единственные другие проблемы, с которыми вы можете столкнуться, — это ограничения драйвера JDBC Pg. Это не так хорошо, как SQL Server или DB2, но единственное, с чем у меня возникали проблемы, — это отправка строк ошибок с шага вывода таблицы на другой шаг, когда шаг вывода таблицы находился в пакетном режиме.

Получайте удовольствие от изучения PDI. Это отличное дополнение к вашим навыкам работы с базами данных.

Брайан

person Brian.D.Myers    schedule 21.12.2012
comment
Спасибо! Я очень ценю ответ. Меня забили за первоначальный вопрос (даже пару голосов против - лол). Я ценю совет. - person David S; 22.12.2012