Создавать таблицы из заголовков столбцов Excel с использованием Python и загружать данные? - PullRequest
0 голосов
/ 14 февраля 2019

Фон нашей среды:

  1. Система хранилища данных работает с SQL Server 2012.
  2. Источниками данных являются файлы Excel и другие API

Проблема:

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

  • Столбецнесоответствие
  • несоответствие типов данных
  • неправильные файлы
  • старый или один и тот же файл, дважды обновляемый

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

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

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

Вопрос:

Есть ли способ, который можно автоматизировать с помощьюPython / Powershell / Any Other скриптязыки?Таким образом, когда исходные файлы готовы, он может прочитать и выполнить следующие шаги:

  1. Считать заголовки столбцов.
  2. Создать SQL для структуры таблицы с идентифицированными заголовками столбцов и создатьвременная (промежуточная) таблица.
  3. Загрузка данных во вновь созданную временную таблицу.
  4. После некоторой базовой обработки данных загрузите данные в основную таблицу (область представления) в основном с помощью SQL.

Задачи:

  1. Существует 18 уникальных файлов, и каждый столбец файла отличается, и он может быть изменен или добавлен в любое время в соответствии с требованиями бизнеса.
  2. Когда есть добавление столбца, как добавить этот столбец в основную таблицу - изменение таблицы - хорошая идея здесь?это нормально делать через скрипт?

Примечание:

  • У нас есть контроль только из файла исходных данных, мы не можем ничего сделать с тем, как источникфайл сгенерирован или когда может быть добавлен новый столбец в исходный файл.
  • Я не уверен, стоит ли задавать этот вопрос на SO OR DBA SE, поэтому, если он здесь не подходит, переместите его на соответствующий форум.

1 Ответ

0 голосов
/ 11 марта 2019

1. Я предполагаю, что вы можете определить типы файлов на основе имени файла или заголовка. Вы можете создать пакет служб SSIS с исходным сценарием в цикле foreach, чтобы сценарий определял столбцы ввода и вывода вручную и давал общие имена ификсированная длина строки, ColumnNr1, ColumnNr2, ColumnNrN (где N - максимальное количество столбцов из ваших файлов +10 для безопасности). Создайте промежуточную таблицу, используя ту же логику, что и выше, ColumnNr1,2 ... это будет использоваться для всехфайлы, если загрузка файла является последовательной (как я и предполагал), в вашем скрипте вы прочитаете заголовок и вставите его в таблицу данных или список, сравните количество столбцов между заголовком файла и финальной таблицей, создайте операторы Alter Table дляНовые столбцы на основе различий и их выполнения, отправка данных столбцов из файла в столбцы OutputBuffer.2. Создайте динамическую процедуру SQL на основе потребностей обработки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...