Иногда нам нужен огромный объем финансовых данных, чтобы провести тщательный анализ инвестиционного портфеля. Когда наши финансовые данные продолжают расти, необходима надлежащая система хранения данных, чтобы мы могли хранить их и получать к ним доступ на постоянной основе. Построение реляционной базы данных для наших финансовых данных может стать решением для достижения указанной выше цели.

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

Необходимые пакеты Python

  1. yFinance - https://pypi.org/project/yfinance/
  2. psycopg2 - https://pypi.org/project/psycopg2/

Github

Оригинальные полные исходные коды, представленные в этой статье, доступны на моем Github Repo. Не стесняйтесь загрузить его (DataStorage.py), если хотите использовать его для подписки на мою статью.

Создание базы данных Postgresql

1. Сбор данных о запасах

Во-первых, мы используем yFinance для получения данных о запасах. yFinance - это библиотека с открытым исходным кодом, которая позволяет нам бесплатно получать данные об акциях из Yahoo Finance.

Строка 1–5: Импортируйте необходимые пакеты Python. Помимо пакетов Python, мы также импортируем расширение, которое может преобразовывать тип данных Numpy Int64 в формат, поддерживаемый Postgresql. (Это необходимо, чтобы убедиться, что все полученные данные о запасах поддерживаются Postgresql)

Строка 7–8: установите тикер (например, AAPL) и используйте метод yFinance download для получения данных по акциям с 1 августа по 1 сентября 2021 года.

Строка 9–10: используйте метод Numpy datetime_as_string, чтобы преобразовать дату в строку и создать новый столбец для тикера.

Строка 11: переименуйте столбец «Adj Close» в «Adj_Close», чтобы избежать проблем с именами хранилищ в базе данных.

Строка 12: используйте метод to_records для преобразования данных акций в список кортежей. Это структура данных, поддерживаемая базой данных.

2. Установка СУБД Postgresql.

Мы собираемся установить СУБД Postgresql на нашу машину. Мы заходим на страницу загрузки Postgresql, а затем загружаем установщик, соответствующий нашей версии ОС (Windows, macOS или Linux).

Затем с помощью установщика установите СУБД Postgresql на нашу машину. Процесс прост, поскольку нам просто нужно следовать подсказкам, чтобы завершить установку.

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

3. Создание биржевой базы данных

Установив на нашем компьютере СУБД Postgresql, мы готовы использовать Python для создания базы данных для наших данных о запасах.

Строка 1–3: Создайте соединение с СУБД PostgreSQL, используя учетные данные, которые вы создаете в процессе установки. 127.0.0.1 относится к localhost.

Строка 4–5: Установите для подключения режим autocommit и создайте курсор. Этот курсор будет использоваться в качестве обработчика для выполнения команды SQL.

Строка 6–9: Напишите нашу первую команду SQL, которая создает базу данных с именем «Stocks». Используйте курсор для выполнения команды SQL и отображения сообщения об успешном выполнении сразу после создания базы данных. Закройте соединение после создания базы данных.

4. Создание таблицы в базе данных

Теперь мы определяем таблицу в нашей базе данных. Давайте определим структуру таблицы в нашем скрипте Python.

Строка 1–4: Установите новое соединение с нашей базой данных акций.

Строка 5–18: Создайте курсор как обработчик базы данных. Используйте курсор для выполнения сценария SQL, который определяет структуру таблицы «цены». Мы определяем восемь конкретных атрибутов (Дата, Открытие, Максимум, Минимум, Закрытие, Adj_Close, Объем, Тикер). Каждый атрибут указывается с определенным типом данных (например, DATE, FLOAT, BIGINT и т. Д.), И все они имеют значение «NOT NULL», чтобы гарантировать отсутствие нулевых значений ни в каких записях. Наконец, выведите на экран сообщение о том, что таблица создана успешно.

5. Вставка данных о запасах в базу данных

Теперь мы можем попытаться вставить данные об акциях, полученные от Yahoo Finance, в базу данных.

Строка 1–4: Установите новое соединение с нашей базой данных акций.

Строка 5–11: Создайте курсор и используйте этот курсор для выполнения команды SQL для вставки данных о запасах в базу данных. Отобразите сообщение, указывающее, что данные вставлены успешно.

6. Данные запроса

На данном этапе нам удалось создать базу данных с таблицей и вставить данные о запасах в базу данных. Наконец, давайте попробуем запросить данные о запасах из базы данных.

Строка 1–4: Установите новое соединение с нашей базой данных акций.

Строка 5–12: Создайте курсор и используйте этот курсор для выполнения команды SQL для запроса данных о запасах из базы данных. «LIMIT 5» в команде SQL ограничит запрашиваемые данные первыми пятью записями. Метод fetchall вернет запрошенные данные в виде списка записей. Затем мы используем цикл for для перебора списка и печати каждой строки записей. В конце концов закройте соединение.

Выводы

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

Кроме того, мы можем легко встроить команду SQL в наш скрипт Python и использовать ее для взаимодействия с базой данных. Здесь мы только показываем несколько основных примеров команд SQL. Также возможно построить более сложный SQL-запрос в Python для выполнения более сложных запросов к данным.

Желаю вам приятного чтения этой статьи.

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

использованная литература

  1. Https://www.tutorialspoint.com/postgresql/postgresql_python.htm

2. https://www.postgresqltutorial.com/postgresql-python/