Мне нужно сделать вычисления для такой огромной таблицы XLS (~ 150 столбцов, ~ 1.000.000 строк). Excel зависает.Я решил перенести данные в таблицу Oracle.
Столбцы имеют все основные типы данных: int, числа с плавающей запятой, символы, строки, даты
У меня есть два варианта:
- Я создаю таблицу вручную с правильными типами данных.Это может быть практическим решением в краткосрочной перспективе, но все же утомительно.
- Для долгосрочного решения (ожидая много разных типов таблиц Excel в будущем) я хотел бы динамически определять типы столбцов изCSV.
Я сейчас создаю таблицу с использованием varchar tpye по умолчанию, используя Python:
list_of_columns = parseFirstLine_CSV(.\data.csv)
columns = ['"%s" varchar2(255)' % n for n in list_of_columns]
sql = "create table SomeTableName (%s)" % ",".join(columns)
cursor.execute(sql)
Давайте посмотрим на эту таблицу.Давайте предположим, что не каждый ряд завершен.Данные «ключа» естественно доступны в xls, это только для примера.
ID Company Date Quality
144 Apple 2019.01.03 ""
"" IBM 2019.01.03 200
105591 Oracle 2019.01.03 9
10R91 Microsoft "" 113
10M99 "" 2019.01.03 3
1076a Walmart "" ""
10M95 Lorem Co. 2019.01.03 3
Я буду использовать Python, но это не главное.
Мой теоретический вопрос: как определить типы, если я не уверен, завершена ли строка в CSV для каждого столбца (поэтому я не могу смотреть только на второйстрока CSV, чтобы получить список типов).Должен ли я перебирать строки CSV до тех пор, пока у меня не появятся все типы, или для этого есть более простой алгоритм?
Я думаю, что в моих таблицах правильнее использовать правильные типы, чем long varchar, поэтому я могу выполнять более чистые запросы.
РЕДАКТИРОВАТЬ: я включу код в Python 3 после того, какЯ закончил с реализацией, мне просто интересны другие мнения.