Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Грибные блоки - красочная головоломка, в которой вам предстоит передвигать блоки и заполнять ряды, чтобы собирать грибочки в корзину! Попробуйте продержаться как можно дольше!

Грибные блоки

Головоломки, Расслабляющая, Пазлы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Postgresql + Программирование

С этим тегом используют

Субд Производительность Мониторинг Тестирование Нейронные сети IT Программист IT юмор Разработка Python Картинка с текстом Юмор Все
28 постов сначала свежее
DELETED
5 лет назад

Перенос XML-данных в БД⁠⁠

Здравствуйте, уважаемые. Обращаюсь с такой проблемой-вопросом. Есть куча xml-файлов, данные из них (имена, фамилии) нужно экспортировать в БД (решил ее поднять через Postgres). Как это можно реализовать на Java? Или это можно сделать встроенными средствами СУБД?
Я в данных вопросах совсем не разбираюсь, помогите, пожалуйста.

[моё] Postgresql Xml Программирование Без рейтинга Текст
20
33
javadev
javadev
5 лет назад
Web-технологии

15 плюсов PostgreSQL⁠⁠

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

1. Бесплатный, шустрый и очень распространенный

2. Для него куча документаций, книг, туториалов, статей, уроков

3. Установить в линуксе можно одной командой без дрочки с настройкой

4. В нем есть postgis, fts, jsonb, gin/gist. В новых версиях завозят приятный сахар

5. Материализованные вьюхи, обновление строк через обновление вьюх, fdw тоже норм

6. Покрывающие индексы, функциональные индексы

7. В нем есть? наверное всё, что есть в платных бд

8. Под него написано куча всего - адаптеров, расширений, приложений (балансировщики, репликаторы), поддерживается средствами разработки

9. В нем есть мощные оконные и прочие функции. Параллелизируемость запросов

10. Один из самых крутых опенсорс проектов. В него влито нереально большое количество сил кучи контрибьюторов. 20 лет назад никто не мог подумать, что PostgreSQL станет топовой СУБД и не будет уступать дорогущим проприетарным базам

11. И в постгресе лучше MVCC сделано, чем в оракл

12. А еще язык pg/plsql просто бомба

13. Ну и в нём можно свои типы объявлять

14. Постгря разрешает группировать по любому выражению, а не только по имеющимся колонкам

15. Одной рукой пишу запрос, второй рукой слезу счастья вытираю

Показать полностью
[моё] Разработка Программирование Java Postgresql Web Web-программирование Длиннопост Текст
23
689
isqad
isqad
6 лет назад

Новый Telegram бот для электронных книг⁠⁠

Вашему вниманию хотел бы представить своего бота для поиска и скачивания электронных книг в Телеграм https://t.me/boookovka_bot .
На написание своего бота меня побудила потребность быстрого поиска различной технической литературы. Я сам работаю программистом в одной из Екатеринбургских компаний, увлекаюсь машинным обучением, немного электроникой и конечно, люблю читать художественную литературу. Вначале нашел бота Флибуста, неплохой бот, достаточно много популярных книг, но почти нет книг по IT тематике. Такие книги я ищу на рутрекере, и выкачиваю торрентом. Это хорошо, когда ты работаешь с компьютера или ноутбука. Но часто я еду в дороге и смотрю лекции, где рекомендуют ту или иную книгу. Хотелось бы сразу найти ее и посмотреть содежание, предисловие. А так как я любитель Телеграм из-за его удобства и возможностей создания своих ботов для автоматизации повседневных задач, то решил почему бы не склепать робота, который содержит пополняемую базу книг, интересных мне тем, и который быстро бы смог найти и скачать необходимую книгу?
Сказано -- сделано, я начал с парсера для рутрекера, по пути изучая python либу scrapy. Наполнив базу magnet-линками, я принялся писать бота, который выполнял бы хотя бы функцию поиска.

Новый Telegram бот для электронных книг Telegram бот, Программирование, Golang, Postgresql, Книги, Длиннопост

На реализацию поиска ушло примерно полдня, я воспользовался обычным полнотекстовым поиском в postgresql. Далее, я на неделю ушёл в свою постоянную работу, попутно в фоне обдумывая план, как выкачивать книги. Идея оказалась примитивна. Обычно тяжелые долгие задачи нужно прятать в "фон", то есть когда боту приходит команда "скачай книгу X", бот ставит задание в очередь задач, откуда ее забирает фоновый процесс, и начинает выполнять задание. Так же и у меня, единственноая проблема была - как оповестить бота и клиента, что книга скачалась?
На этот счет у меня была уже своя реализация шины событий, тем более и брокер у меня уже был для фоновых задач rabbitmq. Теперь когда фоновый процесс скачает файл, он отправляет в шину событие в виде json-сообщения о том, что скачал и кто просил скачать, в свою очередь тот, кто подписан на события шины сообщений, а пока это только бот, парсит сообщение из шины и отдает файл клиенту.

Новый Telegram бот для электронных книг Telegram бот, Программирование, Golang, Postgresql, Книги, Длиннопост

На этом всё. Дальнейшие планы по развитию бота это введение "прогресс-бара", то есть следить за скачиванием файла и по шине событий слать данные, сколько скачалось уже. Также не реализовал постраничную навигацию. Ну и самая неприятная проблема -- РКН, они заблокировали api телеграмма, при этом в реестре я не нашёл записей api.telegram.org и его ip. Поэтому сейчас пока что приходится подключать бота через https прокси.
Еще одна проблема, это то, что телеграм накладывает ограничение на скачиваемый файл : не более 50Мб можно скачать. Об этом пока следует помнить, но я скоро все поправлю) Кардинально решится проблема сайтом - веб-мордочкой. Так что заранее прошу извинить за неудобства) Есть также планы делать оптимизацию и конвертацию в "легкие" форматы "налету".
Бот бесплатный и без навящивой рекламы, в основном делал для себя, но делюсь с миром, чтобы не простаивал зря. Спасибо за внимание.

Показать полностью 2
[моё] Telegram бот Программирование Golang Postgresql Книги Длиннопост
109
8
Troich77
Troich77
8 лет назад

M.Gruber "Understanding SQL" /М.Грабер "Понимание SQL". Создание примера базы данных по книге на базе Postgres-9.4⁠⁠

M.Gruber "Understanding SQL" /М.Грабер "Понимание SQL". Создание примера базы данных по книге на базе Postgres-9.4 Understanding SQL, SQL, Postgresql, Postgres, Обучение, Программирование, Длиннопост

Код выполняется последовательно, по пунктам.

Код закоментирован /* */, для исполнения его нужно вставить, например в PgAdmin, выделить мышкой или раскоментировать нужный фрагмент и нажать "F5".

Таблицы идентичны примерам в книге.



-- M.Gruber "Understanding SQL" /М.Грабер "Понимание SQL"

-- Создание примера базы данных по книге на базе Postgres-9.4



-- 1. Создаем таблицу salespeople


/*


create table salespeople (


snum bigint primary key,


sname varchar(50),


city varchar(50),


comm numeric)


*/


-- 1.1. Наполняем данными salespeople


/*


insert into salespeople


select 1001::bigint as snum, 'Peel'::varchar(50) as sname, 'London'::varchar(50) as city, 0.12::numeric as comm


union all


select 1002::bigint as snum, 'Serres'::varchar(50) as sname, 'San Jose'::varchar(50) as city, 0.13::numeric as comm


union all


select 1004::bigint as snum, 'Motika'::varchar(50) as sname, 'London'::varchar(50) as city, 0.11::numeric as comm


union all


select 1007::bigint as snum, 'Rifkin'::varchar(50) as sname, 'Barcelona'::varchar(50) as city, 0.15::numeric as comm


union all


select 1003::bigint as snum, 'Axelrod'::varchar(50) as sname, 'New York'::varchar(50) as city, 0.10::numeric as comm


*/


-- 2. Создаем таблицу customers


/*


create table customers (


cnum bigint primary key,


cname varchar(50),


city varchar(50),


rating numeric,


snum bigint)


*/


-- 2.1. Наполняем данными customers


/*


insert into customers


select 2001::bigint as сnum, 'Hoffman'::varchar(50) as сname, 'London'::varchar(50) as city, 100::numeric as rating, 1001::bigint as snum


union all


select 2002::bigint as сnum, 'Giovanni'::varchar(50) as сname, 'Rome'::varchar(50) as city, 200::numeric as rating, 1003::bigint as snum


union all


select 2003::bigint as сnum, 'Liu'::varchar(50) as сname, 'San Jose'::varchar(50) as city, 200::numeric as rating, 1002::bigint as snum


union all


select 2004::bigint as сnum, 'Grass'::varchar(50) as сname, 'Berlin'::varchar(50) as city, 300::numeric as rating, 1002::bigint as snum


union all


select 2006::bigint as сnum, 'Clemens'::varchar(50) as сname, 'London'::varchar(50) as city, 100::numeric as rating, 1001::bigint as snum


union all


select 2008::bigint as сnum, 'Cisneros'::varchar(50) as сname, 'San Jose'::varchar(50) as city, 300::numeric as rating, 1007::bigint as snum


union all


select 2007::bigint as сnum, 'Pereira'::varchar(50) as сname, 'Rome'::varchar(50) as city, 100::numeric as rating, 1004::bigint as snum


*/


-- 3. Создаем таблицу orders


/*


create table orders (


onum bigint primary key,


amt numeric,


odate date,


cnum bigint,


snum bigint)


*/


-- 3.1. Наполняем данными orders


/*


insert into orders


select 3001::bigint as onum, 18.69::numeric as amt, '10/03/1990'::date as odate, 2008::bigint as cnum, 1007::bigint as snum


union all


select 3003::bigint as onum, 767.19::numeric as amt, '10/03/1990'::date as odate, 2001::bigint as cnum, 1001::bigint as snum


union all


select 3002::bigint as onum, 1900.10::numeric as amt, '10/03/1990'::date as odate, 2007::bigint as cnum, 1004::bigint as snum


union all


select 3005::bigint as onum, 5160.45::numeric as amt, '10/03/1990'::date as odate, 2003::bigint as cnum, 1002::bigint as snum


union all


select 3006::bigint as onum, 1098.16::numeric as amt, '10/03/1990'::date as odate, 2008::bigint as cnum, 1007::bigint as snum


union all


select 3009::bigint as onum, 1713.23::numeric as amt, '10/04/1990'::date as odate, 2002::bigint as cnum, 1003::bigint as snum


union all


select 3007::bigint as onum, 75.75::numeric as amt, '10/04/1990'::date as odate, 2004::bigint as cnum, 1002::bigint as snum


union all


select 3008::bigint as onum, 4723.00::numeric as amt, '10/05/1990'::date as odate, 2006::bigint as cnum, 1001::bigint as snum


union all


select 3010::bigint as onum, 1309.95::numeric as amt, '10/06/1990'::date as odate, 2004::bigint as cnum, 1002::bigint as snum


union all


select 3011::bigint as onum, 9891.88::numeric as amt, '10/06/1990'::date as odate, 2006::bigint as cnum, 1001::bigint as snum


*/



-- 4. Удаление базы данных


/*


DROP TABLE salespeople


DROP TABLE customers


DROP TABLE orders


*/

Показать полностью 1
[моё] Understanding SQL SQL Postgresql Postgres Обучение Программирование Длиннопост
5
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии