Ни документация от Stitch Data, ни документация от Digital Ocean не работают идеально без ошибок, требующих устранения неполадок.

После нескольких часов борьбы мне наконец удалось найти простое решение, которое позволяет мне подключить Stitch Data к базе данных PostgreSQL, созданной на моем сервере, размещенном на Ubuntu 16.04, в качестве хранилища данных.

Шаг 1. Убедитесь, что PostgreSQL установлен

На моем сервере уже был запущен экземпляр Redash, инструмент визуализации данных на основе SQL, поэтому PostgreSQL уже был установлен. Но если это ваш совершенно новый сервер, например, дроплет в Digital Ocean, то вам, скорее всего, потребуется установить пакет.

Не должно быть никаких серьезных проблем с установкой пакета postgresql на новую каплю Digital Ocean.

Шаг 2. Внесите в белый список IP-адреса Stitch Data

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

Здесь все становится сложно и неясно, поскольку в Stitch Data нет никакой документации. Все, что он говорит, это:

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

  • 52.23.137.21/32
  • 52.204.223.208/32
  • 52.204.228.32/32
  • 52.204.230.227/32

Это не совсем полезно, за исключением списка IP-адресов.

Итак, я искал различные форумы и Stack Overflow, и я понял это:

1. Добавьте следующие строки в файл pg_hba.conf, который, скорее всего, находится по пути, похожему на /etc/postgresql/9.5/main/. Вы можете ввести sudo vi /etc/postgresql/9.5/main/pg_hba.conf, чтобы открыть файл. Как только он откроется, просто добавьте следующие строки в конец файла:

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

Если вы хотите добавить какие-то ограничения из соображений безопасности, напишите примерно такие строки:

Здесь md5 говорит разрешить удаленные подключения, если у пользователя есть правильный пароль, зашифрованный MD5.

2. (Необязательно) Если проверка подключения из Stitch Data не удалась, вы можете добавить следующую строку в свой файл postgresql.conf, который находится в той же папке, что и файл pg_hba.conf.

3.После редактирования файла вы можете перезапустить postgresql.

Это должно позволить Stitch Data устанавливать удаленные соединения.

Шаг 3. Давайте создадим базу данных PostgreSQL

Наконец, пришло время создать базу данных для подключения к хранилищу Stitch Data.

Подключитесь обратно к оболочке локального сервера и введите:

or,

И мы в мире postgresql:

Внутри терминала postgres выполните следующую команду:

(Примечание: не забывайте ; в конце каждой строки перед нажатием клавиши возврата. В противном случае программа не подумает, что вы действительно хотели запустить эту строку.)

Шаг 4. Создайте пользователя базы данных

Внутри того же терминала postgres выполните следующие команды:

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

Шаг 5. Подключите данные стежка к вашей базе данных PostgreSQL

Как только я выбрал PostgreSQL в качестве места назначения в Stitch, я просто заполнил форму следующим образом:

  • Хост (конечная точка): my_server_ip_address
  • Порт: 5432 (введите порт, используемый экземпляром PostgreSQL. Значение по умолчанию — 5432.)
  • Имя пользователя: stitchdata
  • Пароль: пароль, который я создал на предыдущем шаге
  • База данных: stitchdata (примечание: я выбрал то же имя, что и имя пользователя)
  • Тип шифрования: Нет

Нажмите Обновить настройки PostgreSQL, и вы должны увидеть журнал и сообщение об успешном завершении.

Если при удаленном подключении возникает ошибка, похожая на:

Возможно, вы захотите создать пользователя для своего сервера с тем же именем, что и [stitch_name] для базы данных, введя команду ниже:

Это должно сработать.

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

Советы

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

Совет 1. Иногда база данных PostgreSQL может иметь другой часовой пояс, чем ваши источники данных, поэтому вы можете проверить файл postgresql.conf и изменить часовой пояс:

Совет 2. Всякий раз, когда вы меняете файлы *.conf, не забудьте перезапустить службу PostgreSQL:

И убедитесь, что служба снова запущена:

Если вы не видите ни одной запущенной службы, проверьте файл журнала:

Самые последние сообщения об ошибках находятся в конце файла.

Совет 3. Я использую Digital Ocean для своего сервера, и иногда изменения не вступают в силу после перезапуска службы, поэтому мне нужно перезагрузить весь сервер:

Конечно, мне придется перейти на страницу моей капли на веб-сайте и включить ее.

Совет 4. Со мной случалось, что ни один из вышеперечисленных шагов не работал, и мне пришлось использовать at time zone 'American/New_York', чтобы заставить приложение получать даты с правильным часовым поясом.

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

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

Блоки кода изначально опубликованы на gist.github.com.