Какой язык использовать для сценариев PostgreSQL? [закрытый]

7
задан thomaspaulb 30 January 2010 в 13:44
поделиться

4 ответа

Используйте метод split . Пример:

>>> "0,1,2".split(",")
['0', '1', '2']

Или даже,

>>> [int(x) for x in "0,1,2".split(",")]
[0, 1, 2]
-121--3433067-

Ну, переключатель A по умолчанию добавит эти символы, так что это не загадка.

man grep утверждает:

-A NUM

    Places  a  line  containing  a  group  separator  (--)   between
    contiguous  groups  of  matches.  With the -o or --only-matching
    option, this has no effect and a warning is given.

Но вы можете использовать простой sed для очистки результата:

yourgrep | sed '/^--$/d'
-121--1026167-

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

  • Сохраненные функции SQL и PL/pgSQL для манипулирования и обработки данных
  • COPY FROM и COPY TO для импорта из и экспорта в плоские файлы
  • ETL-инструмент для любых изменений, которые не могут быть обработаны с помощью вышеописанного

Теперь вы хотите предоставить Здесь лучший язык, вероятно, тот, который вы или ваша команда уже знают. Все основные языки имеют драйверы Postgres. Выбранный язык будет иметь очень незначительное влияние, если сохранить задачи по обработке данных на уровне базы данных.

Следует учитывать, как долго будет выполняться типичный сценарий. Если это более нескольких минут, то я предлагаю отделить его от веб-интерфейса. В этом случае веб-интерфейс должен позволять пользователю ставить сценарий в очередь для запуска, чтобы сервер мог запускать его независимо от цикла веб- просить.

3
ответ дан 7 December 2019 в 05:22
поделиться

Я использую Python / Jython для подключения к PostgreSQL и делать разные вещи.

Плюсы:

  • Есть PL / Python , чтобы вы могли использовать Python из PostgreSQL
  • , вы можете создать «автономные» программы, используя Python DB API , есть Док Об программировании базы данных, а также PostgreSQL подробно
  • Вы можете использовать Jython, если вам нравится JVM-среда, особенно драйвер JDBC

Примеры использования:

  • Преобразование PDF, MS Word и OOPENOFFICE Документы, сохраненные в Blobs к тексту, чтобы индексировать его
  • Импорт данных из различных источников, не только CVS; Python действительно сильный при преобразовании текстовых данных
  • Драйверы тестирования, в то время как некоторые наши приложения являются нативными и использовать драйверы ODBC или JDBC, а Jython может работать с обоими драйверами (для ODBC есть мост JDBC-ODBC)

на моих других сообщениях Таким образом, вы можете видеть, что я использую Python / Jython с другими базами данных как Oracle и Informix. Например, я создал инструменты, которые сбрасывают некоторую информацию из схемы базы данных, чтобы я мог легко сравнить базы данных в тестовой и производственной среде.

3
ответ дан 7 December 2019 в 05:22
поделиться

SchemaCrawler для PostgreSQL позволяет создавать сценарии для базы данных с помощью JavaScript.

1
ответ дан 7 December 2019 в 05:22
поделиться

Я использую Perl. Я бы тоже это предложил. Что касается языков сценариев баз данных, которые предлагает postgres: pl / perl намного более развит, чем pl / php , а pl / perlu привносит CPAN в Postgres.

У вас все еще есть pl / sql (отлично подходит для мелочей) и pl / pgsql (тоже имеет свои приложения).

К сожалению, поддержка CSV в Postgres не совсем удобна, я собираюсь очень скоро начать проект Perl, чтобы исправить это (вероятно, в течение следующего месяца). В настоящее время вам почти нужно использовать pgloader, который (imho) имеет беспорядочный синтаксис. Perl имеет Text :: CSV_XS , который является находкой для обработки CSV.

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

1
ответ дан 7 December 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: