Написать код, который будет эффективно загружать данные из excel в облачную БД
Задача
Есть кластер облачной БД на PostgreSQL 16, развернутый в Selectel. Нужен код, который будет эффективно переписывать данные из excel файла в БД по определенному алгоритму.
Объем данных небольшой, как и сама БД, но код должен быть рассчитан и на более высокие объемы.
Код желательно на Питоне, с небольшой консультацией по его работе.
Оставлять заявки могут только авторизованные пользователи.
Общие комментарии:
Добавил пример таблиц, которые нужно загружать - каждая таблица на отдельном листе, а также заголовки столбцов базы данных.
Сам алгоритм в целом достаточно простой, готов обсудить при знакомстве
Я разработчик Python с опытом работы с PostgreSQL и обработкой данных из Excel. Готов выполнить ваш проект, обеспечив:
Эффективную загрузку данных в PostgreSQL с учетом возможного роста объема.
Батчевую обработку для повышения производительности.
Гибкий алгоритм обновления – вставка новых записей и обновление существующих по заданным условиям.
Оптимизированные запросы (возможность использования COPY или ON CONFLICT UPDATE для ускорения работы).
Есть опыт работы с облачными БД, включая Selectel. Готов обсудить детали и предложить наилучшее решение под ваши задачи.
Готов сделать. Цена и срок зависят от сложности структуры базы данных и исходных табличных файлов, поэтому смогу их назвать только после осмотра и того, и другого. Подобную работу делать приходилось, поэтому, скорее всего, в пять дней уложусь. Писать буду на Python.
Цена договорная т.к. нужно будет увидеть файл, да и суть алгоритма узнать, писать буду на python, возможно с использованием сырого sql, точно смогу сказать после получения ТЗ
def load_excel_to_postgres(
excel_path: str,
table_name: str,
schema: str = "public",
batch_size: int = 10000,
use_temp_table: bool = True
) -> None:
"""
Загружает данные из Excel в PostgreSQL с использованием эффективного pipeline
Параметры:
excel_path (str): Путь к Excel-файлу
table_name (str): Название целевой таблицы
schema (str): Схема БД (по умолчанию public)
batch_size (int): Размер пакета для чтения Excel
use_temp_table (bool): Использовать временную таблицу для загрузки
"""
Читает Excel-файл с помощью pandas.read_excel().
Создает подключение к PostgreSQL через SQLAlchemy.
Загружает данные в указанную таблицу с использованием метода to_sql с параметром method='multi' для пакетной вставки.
При необходимости можно добавить обработку по частям (chunking) для очень больших объемов данных.
import pandas as pd
from sqlalchemy import create_engine
# Параметры подключения к БД. Отредактируйте строку подключения под вашу конфигурацию.
DATABASE_URI = 'postgresql+psycopg2://username:password@your_host:your_port/your_dbname'
engine = create_engine(DATABASE_URI)
# Если данных много, можно обрабатывать их по частям
chunk_size = 10000 # количество строк в одном чанке (при необходимости уменьшите или увеличьте)
for start in range(0, len(df), chunk_size):
df_chunk = df.iloc[start:start + chunk_size]
df_chunk.to_sql('your_table_name', engine, if_exists='append', index=False, method='multi')
print("Данные успешно загружены в базу данных.")
Краткое пояснение:
pandas.read_excel: считывает данные из файла Excel в DataFrame.
SQLAlchemy: обеспечивает соединение с PostgreSQL. Строка подключения должна быть настроена согласно вашим данным (имя пользователя, пароль, адрес сервера, порт, имя базы).
to_sql: сохраняет данные в таблицу your_table_name. Параметр if_exists='append' добавляет данные в существующую таблицу, а method='multi' ускоряет вставку, объединяя несколько INSERT-запросов в один.
Чанкинг: используется для разделения больших объемов данных на более мелкие части, чтобы не перегружать память и БД.
Основная специализация: Веб-разработка и Продуктовый дизайн
Доброе утро, есть уже готовый код на php.Тестировал на загрузке 200мб файлов с 90+ столбцами, работает без ошибок, с форматированием дат и чисел, при необходимости можно будет дописать форматирование. Загружает как в готовую таблицу так и может создать новую, можно будет настроить автозагрузку каждый день, без участия пользователя.
Внимательно изучил ваше ТЗ и готов предложить эффективное решение для переноса данных из Excel в PostgreSQL. У меня есть опыт работы с обработкой данных различного объема, а также интеграцией Python с PostgreSQL.
Понимание задачи
Основная цель – написать код на Python, который будет:
Читать данные из Excel-файла
Обрабатывать их по определенному алгоритму
Загружать в PostgreSQL
Быть масштабируемым для больших объемов данных
Предлагаемое решение
1.Стек технологий
Python : основной язык разработки
Pandas : для чтения и обработки данных из Excel
SQLAlchemy : ORM для взаимодействия с PostgreSQL
psycopg2 : драйвер для PostgreSQL
COPY команды PostgreSQL : для быстрой загрузки данных
2. Архитектура решения
Код будет состоять из следующих модулей:
Чтение данных : используем Pandas для импорта Excel-файла
Обработка данных : применяем необходимый алгоритм преобразования
Загрузка в БД : используем COPY команду для массовой вставки данных
import pandas as pd
from sqlalchemy import create_engine
# Подключение к PostgreSQL
engine = create_engine('postgresql://user:password@host:port/dbname')
# Применение алгоритма обработки
# df = process_data(df) # здесь можно добавить ваш алгоритм
# Загрузка данных в PostgreSQL
df.to_sql('table_name', engine, if_exists='append', index=False)
3. Оптимизация для больших объемов
Использование батчей для разделения данных на части
Параллельная загрузка через мультипроцессинг
Предварительная проверка данных перед загрузкой
Логироhание процесса для отслеживания ошибок
Итого:
Изучить структуру данных и алгоритм обработки
Написать прототип кода
Провести тестирование на предоставленных данных
Оптимизировать код под высокие нагрузки
Документировать работу программы
Провести консультацию по использованию. мой телеграмм - @nolan13as
Никита, 3 года опыта
Разработаю эффективный Python-скрипт для загрузки данных из Excel в вашу PostgreSQL БД в Selectel. Учту масштабируемость, скорость и надежность. Опыт работы с PostgreSQL и Selectel Cloud.
Здравствуйте, есть рабочий прототип Вашего проекта, только для локальной БД
Проект выполнен в Visual Studio
Можно скачать из портфолио (ссылка ниже).
Далее договоримся
Резюме https://novosibirsk.hh.ru/resume/cb752738ff0359b8260039ed1f466e4c7a5a63
Портфолио http://www.freelancejob.ru/users/popovov
Я подготовлю для вас Python-код, который эффективно импортирует данные из Excel в PostgreSQL 16 на кластере в Selectel. Код будет использовать современные библиотеки и подходы, включая pandas для обработки Excel и psycopg2 для работы с PostgreSQL, с учетом масштабируемости.
Если вы заинтересованы напишите мне, я в свою очередь расскажу вам как будет работать код, дам консультации по запуску и ооптимизации для больших обьемов.
Напишу эффективный Python code для импорта данных из Excel в ваш PostgreSQL 16 кластер на Selectel, учитывая масштабируемость решения. Предоставлю консультацию по работе кода. Контакты, опыт:
22:11 04.03.25
Можете связаться со мной в рабочее московское время в вацап или телеграм? Цену указал крупно, зеленым, портфолио в профиле, контакты в подписи.
Добрый день.
Реализую на python или go, с документацией. Мне нужно будет уточнить объем данных, алгоритм, требуется ли реализовать аутентификацию. Готов проработать вариант автоматической выгрузки или обмена данными на будущее.
Привет, имею большой опыт в разработке скриптов, сайтов, парсеров и просто програм на python, одним словом пишу всо, также пишу приложения на Андроид, с удовольствием возьмусь за работу, сделаю всо в лучшем виде и в кратчайшие сроки, также помогу запустить и разобраться.
Мое портфолио: https://ochistka35.wixsite.com/daichasportfolio
Мой телеграм: https://t.me/daicha_helper_bot (если у вас спам, не проблема)
Написать код, который будет эффективно загружать данные из excel в облачную БД
Реклама
Написать код, который будет эффективно загружать данные из excel в облачную БД
Есть кластер облачной БД на PostgreSQL 16, развернутый в Selectel. Нужен код, который будет эффективно переписывать данные из excel файла в БД по определенному алгоритму.
Объем данных небольшой, как и сама БД, но код должен быть рассчитан и на более высокие объемы.
Код желательно на Питоне, с небольшой консультацией по его работе.
Общие комментарии:
Добавил пример таблиц, которые нужно загружать - каждая таблица на отдельном листе, а также заголовки столбцов базы данных. Сам алгоритм в целом достаточно простой, готов обсудить при знакомстве
2025-03-06 22:54