Как хранятся данные в csv
Перейти к содержимому

Как хранятся данные в csv

  • автор:

Файлы CSV, TXT и GPX

Если у вас имеются данные электронных таблиц, хранящиеся в виде текстового файла с разделителями-запятыми ( .csv ), или данные, хранящиеся в текстовом файле с разделителями ( .txt ) или файле в обменном формате GPS ( .gpx ), вы можете добавлять данные на портал ArcGIS Enterprise . В списке описано использование этих файлов и содержатся ссылки и инструкции. В расположенных после списка функциональности разделах содержится информация о правильном форматировании и использовании файлов CSV, TXT и GPX на вашем портале Enterprise .

  • Добавьте файлы CSV, TXT или GPX на свою карту. Map Viewer добавит информацию о местоположении, отобразит на карте пространственные объекты, соответствующие каждому элементу в файле, и сохранит информацию в карте в виде слоя. После того как файл будет добавлен на карту, можно редактировать свойства создаваемого слоя. Например, можно настраивать всплывающие окна, изменять символы, задавать диапазон видимости и удалять всплывающие окна.
  • Добавьте в Map Viewer файл CSV, который не содержит информацию о местоположении, в виде таблицы. Это полезно, когда вы хотите соединить непространственные данные в Интернете – например, претензии о повреждении имущества в связи с прошедшим торнадо – с пространственными данными, например, слоем почтовых индексов, используя для этого инструмент анализа Присоединить объекты.
  • Если ваш файл CSV хранится на общедоступном веб-сайте, вы можете ссылаться на него, как на веб-слой. Если в файле CSV содержится информация о координатах, обновления файла CSV будут отображены на карте. Если в файле CSV содержится информация об адресах или о местоположениях, обновления файла CSV в сети не отобразятся на карте.
  • Добавьте файлы CSV на свой портал и опубликуйте их, чтобы пользователи могли загрузить эти данные.
  • Если у вас есть право публикации размещенных векторных слоев, можно опубликовать данные в файлах CSV.

Файлы CSV и TXT

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

Если в файле не заданы типы данных, ArcGIS Enterprise опирается на имена полей и форматирование полей для интерпретации применимых типов данных.

Поля местоположений в файлах CSV и TXT

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

  • долгота, широта*
  • широта, долгота*
  • Военная система прямоугольных координат (MGRS)
  • United States National Grid (USNG)

Если Map Viewer не может определить информацию о координатах либо в файле вместо координат содержится информация об адресе или местоположении, вам будет предложено просмотреть поля местоположения и при необходимости их изменить.

Поддерживаются следующие поля:

  • Широта, долгота
  • Lat, Long
  • Longitude83, Latitude83
  • Longdecdeg, Latdecdeg
  • Long_dd, Latdd
  • Lng
  • Y, X
  • Ycenter, Xcenter
  • Xcenter, Ycenter
  • Point-y, Point-x
  • Point-x, Point-y
  • MGRS:
  • USNG
  • Адрес
  • Город
  • Штат
  • ZIP

Время и дата в файлах CSV

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

Всякий раз, когда отображается поле даты, дата преобразуется из времени UTC в местное время. Это выполняется с помощью запроса вашего компьютера для определения его настроек часового пояса. Например, предположим, что ваш компьютер настроен на Тихоокеанское стандартное время (PST). PST отстает от UTC на восемь часов – 10:00 часов утра по UTC соответствует 2:00 часам ночи по PST.

Когда вы публикуете размещенный векторный слой из файла CSV, можно указать часовой пояс данных. Заданный часовой пояс используется, чтобы ликвидировать смещение, поскольку ArcGIS Enterprise использует время и дату в формате UTC. Например, когда файл CSV, содержащий поля даты, публикуется с часовым поясом PST, ко всем значениям даты и времени в нем добавляется восемь часов, для конвертации в UTC.

Если поля даты в CSV содержат только значения даты, но не времени, при публикации в виде векторного слоя им присваивается значение времени, соответствующее полуночи. Поэтому, если вы не задали часовой пояс при публикации, данные будут храниться с временем, соответствующим полуночи по UTC. При просмотре данных, время конвертируется в локальное, что также может привести к изменению даты. Например, 7/28/2009 0:00 соответствует полуночи по UTC 28 июля 2009. Если вы просматриваете данные на компьютере с тихоокеанским часовым поясом, дата и время будут отображаться как 7/27/2009 16:00. Выбор часового пояса при публикации позволяет убрать этот сдвиг при просмотре данных в указанном часовом поясе.

Следующие даты поддерживаются при публикации размещённого векторного слоя из файла CSV:

Хранение множества мелких и средних файлов, как оптимально: файловая система или база данных?

Как оптимально хранить CSV файлы на сервере: в базе данных Postgres или локально на сервере, а в базе хранить просто путь к файлу (файлы будут в zip архиве и архивы размером от 5 КБ до 250кб, изредка 1-2 мб)?
В CSV файле данные из базы на основе 5-10 фильтров (в итоге возвращает от 5 до 5000 записей, где для каждой записи около 120 столбцов из разных таблиц). На фронтенде есть таблица c 5 столбцами (имя, фильтры, дата создания, столбец с иконками скачивания и удаления) , где при клике по иконке скачивания должен скачиваться архив с данными для заранее заданных фильтров (архив нужен, так как может быть много мелких файлов, до 20-40, например отдельный CSV файл для каждой компании производителя техники )

Ежемесячно будет формироваться около 5000-10000 файлов, храниться они будут 6 месяцев, после чего удаляться, то есть более 100 000 файлов в базе или файловой системе не ожидается.

Хранить готовые файлы на сервере хочу из-за скорости. Мне кажется, что гораздо быстрее повторно скачать уже сформированный файл который хранится на сервере, чем каждый раз при скачивании файла 1. отправлять запрос к базе данных с фильтрами 2. на основе отфильтрованных данных сформировать CSV файл(ы) 3. заархивировать файл(ы) и 4. затем скачать. Или я неправильно думаю?

Сам склоняюсь хранить файлы в файловой системе основываясь на данной теме: https://softwareengineering.stackexchange.com/a/150724

  • Вопрос задан более года назад
  • 347 просмотров

4 комментария

Простой 4 комментария

Редактируем CSV-файлы, чтобы не сломать данные

Продукты HFLabs в промышленных объемах обрабатывают данные: адреса, ФИО, реквизиты компаний и еще вагон всего. Естественно, тестировщики ежедневно с этими данными имеют дело: обновляют тест-кейсы, изучают результаты очистки. Часто заказчики дают «живую» базу, чтобы тестировщик настроил сервис под нее.

Первое, чему мы учим новых QA — сохранять данные в первозданном виде. Все по заветам: «Не навреди». В статье я расскажу, как аккуратно работать с CSV-файлами в Excel и Open Office. Советы помогут ничего не испортить, сохранить информацию после редактирования и в целом чувствовать себя увереннее.

Материал базовый, профессионалы совершенно точно заскучают.

Что такое CSV-файлы

Формат CSV используют, чтобы хранить таблицы в текстовых файлах. Данные очень часто упаковывают именно в таблицы, поэтому CSV-файлы очень популярны.

CSV-файл состоит из строк с данными и разделителей, которые обозначают границы столбцов

CSV расшифровывается как comma-separated values — «значения, разделенные запятыми». Но пусть название вас не обманет: разделителями столбцов в CSV-файле могут служить и точки с запятой, и знаки табуляции. Это все равно будет CSV-файл.

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

Из-за своих преимуществ CSV — сверхпопулярный формат обмена данными, хотя ему уже лет 40. CSV используют прикладные промышленные программы, в него выгружают данные из баз.

Одна беда — текстового редактора для работы с CSV мало. Еще ничего, если таблица простая: в первом поле ID одной длины, во втором дата одного формата, а в третьем какой-нибудь адрес. Но когда поля разной длины и их больше трех, начинаются мучения.

Следить за разделителями и столбцами — глаза сломаешь

Еще хуже с анализом данных — попробуй «Блокнотом» хотя бы сложить все числа в столбце. Я уж не говорю о красивых графиках.

Поэтому CSV-файлы анализируют и редактируют в Excel и аналогах: Open Office, LibreOffice и прочих.

Ветеранам, которые все же дочитали: ребята, мы знаем об анализе непосредственно в БД c помощью SQL, знаем о Tableau и Talend Open Studio. Это статья для начинающих, а на базовом уровне и небольшом объеме данных Excel с аналогами хватает.

Как Excel портит данные: из классики

Все бы ничего, но Excel, едва открыв CSV-файл, начинает свои лукавые выкрутасы. Он без спроса меняет данные так, что те приходят в негодность. Причем делает это совершенно незаметно. Из-за этого в свое время мы схватили ворох проблем.

Большинство казусов связано с тем, что программа без спроса преобразует строки с набором цифр в числа.

Округляет. Например, в исходной ячейке два телефона хранятся через запятую без пробелов: «5235834,5235835». Что сделает Excel? Лихо превратит номера́ в одно число и округлит до двух цифр после запятой: «5235834,52». Так мы потеряем второй телефон.

Приводит к экспоненциальной форме. Excel заботливо преобразует «123456789012345» в число «1,2E+15». Исходное значение потеряем напрочь.

Проблема актуальна для длинных, символов по пятнадцать, цифровых строк. Например, КЛАДР-кодов (это такой государственный идентификатор адресного объекта: го́рода, у́лицы, до́ма).

Удаляет лидирующие плюсы. Excel считает, что плюс в начале строки с цифрами — совершенно лишний символ. Мол, и так ясно, что число положительное, коль перед ним не стоит минус. Поэтому лидирующий плюс в номере «+74955235834» будет отброшен за ненадобностью — получится «74955235834». (В реальности номер пострадает еще сильнее, но для наглядности обойдусь плюсом).

Потеря плюса критична, например, если данные пойдут в стороннюю систему, а та при импорте жестко проверяет формат.

Разбивает по три цифры. Цифровую строку длиннее трех символов Excel, добрая душа, аккуратно разберет. Например, «8 495 5235834» превратит в «84 955 235 834».

Форматирование важно как минимум для телефонных номеров: пробелы отделяют коды страны и города от остального номера и друг от друга. Excel запросто нарушает правильное членение телефона.

Удаляет лидирующие нули. Строку «00523446» Excel превратит в «523446».
А в ИНН, например, первые две цифры — это код региона. Для Республики Алтай он начинается с нуля — «04». Без нуля смысл номера исказится, а проверку формата ИНН вообще не пройдет.

Меняет даты под локальные настройки. Excel с удовольствием исправит номер дома «1/2» на «01.фев». Потому что Windows подсказал, что в таком виде вам удобнее считывать даты.

Побеждаем порчу данных правильным импортом

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

По умолчанию Excel применяет к данным в загруженном CSV-файле тип «General» — общий. Из-за него программа распознает цифровые строки как числа. Такой порядок можно победить, используя встроенный инструмент импорта.

Запускаю встроенный в Excel механизм импорта. В меню это «Data → Get External Data → From Text».

Выбираю CSV-файл с данными, открывается диалог. В диалоге кликаю на тип файла Delimited (с разделителями). Кодировка — та, что в файле, обычно определяется автоматом. Если первая строка файла — шапка, отмечаю «My Data Has Headers».

Перехожу ко второму шагу диалога. Выбираю разделитель полей (обычно это точка с запятой — semicolon). Отключаю «Treat consecutive delimiters as one», а «Text qualifier» выставляю в «». (Text qualifier — это символ начала и конца текста. Если разделитель в CSV — запятая, то text qualifier нужен, чтобы отличать запятые внутри текста от запятых-разделителей.)

На третьем шаге выбираю формат полей, ради него все и затевалось. Для всех столбцов выставляю тип «Text». Кстати, если кликнуть на первую колонку, зажать шифт и кликнуть на последнюю, выделятся сразу все столбцы. Удобно.

Дальше Excel спросит, куда вставлять данные из CSV — можно просто нажать «OK», и данные появятся в открытом листе.

Перед импортом придется создать в Excel новый workbook

Но! Если я планирую добавлять данные в CSV через Excel, придется сделать еще кое-что.

После импорта нужно принудительно привести все-все ячейки на листе к формату «Text». Иначе новые поля приобретут все тот же тип «General».

  • Нажимаю два раза Ctrl+A, Excel выбирает все ячейки на листе;
  • кликаю правой кнопкой мыши;
  • выбираю в контекстном меню «Format Cells»;
  • в открывшемся диалоге выбираю слева тип данных «Text».

Чтобы выделить все ячейки, нужно нажать Ctrl+A два раза. Именно два, это не шутка, попробуйте

После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.

Альтернатива: Open Office Calc

Для работы с CSV-файлами я использую именно Calc. Он не то чтобы совсем не считает цифровые данные строками, но хотя бы не применяет к ним переформатирование в соответствии с региональными настройками Windows. Да и импорт попроще.

Конечно, понадобится пакет Open Office (OO). При установке он предложит переназначить на себя файлы MS Office. Не рекомендую: хоть OO достаточно функционален, он не до конца понимает хитрое микрософтовское форматирование документов.

А вот назначить OO программой по умолчанию для CSV-файлов — вполне разумно. Сделать это можно после установки пакета.

Итак, запускаем импорт данных из CSV. После двойного клика на файле Open Office показывает диалог.

Заметьте, в OO не нужно создавать новый воркбук и принудительно запускать импорт, все само

  1. Кодировка — как в файле.
  2. «Разделитель» — точка с запятой. Естественно, если в файле разделителем выступает именно она.
  3. «Разделитель текста» — пустой (все то же, что в Excel).
  4. В разделе «Поля» кликаю в левый-верхний квадрат таблицы, подсвечиваются все колонки. Указываю тип «Текст».

Помимо Calc у нас в HFLabs популярен libreOffice, особенно под «Линуксом». И то, и другое для CSV применяют активнее, чем Excel.

Бонус-трек: проблемы при сохранении из Calc в .xlsx

Если сохраняете данные из Calc в экселевский формат .xlsx, имейте в виду — OO порой необъяснимо и масштабно теряет данные.

Белая пустошь, раскинувшаяся посередине, в оригинальном CSV-файле богато заполнена данными

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

Если что-то потерялись, лечение — пересохранить из CSV в .xlsx. Или, если установлен Windows, импортнуть из CSV в Excel и сохранить оттуда.

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

Если интересно работать с данными, посмотрите на наши вакансии. HFLabs почти всегда нужны аналитики, тестировщики, инженеры по внедрению, разработчики. Данными обеспечим так, что мало не покажется 🙂

  • Блог компании HFLabs
  • Информационная безопасность
  • IT-стандарты
  • Хранение данных
  • Софт

Получение данных из файлов с разделимыми запятыми (CSV)

Файлы значений, разделенные запятыми, часто называемые CSV-файлом, — это простые текстовые файлы с строками данных, в которых каждое значение разделено запятыми. Эти типы файлов могут содержать большие объемы данных в относительно небольшом размере файла, что делает их идеальным источником данных для Power BI. Вы можете скачать пример CSV-файла.

Если у вас есть CSV-файл, пришло время попасть на сайт Power BI в качестве семантической модели, где можно начать изучение данных, создать некоторые панели мониторинга и поделиться своими аналитическими сведениями с другими пользователями.

Многие организации выводит CSV-файл с обновленными данными каждый день. Чтобы убедиться, что семантическая модель в Power BI синхронизируется с обновленным файлом, убедитесь, что файл сохранен в OneDrive с тем же именем.

Место сохранения файла имеет разницу

Локальный — если вы сохраните CSV-файл на локальном диске на компьютере или другом расположении в организации, вы можете импортировать файл в Power BI. Файл фактически останется на локальном диске, поэтому весь файл не импортируется в Power BI. Что действительно происходит, это новая семантическая модель создается в Power BI, а данные из CSV-файла загружаются в семантику модели.

OneDrive для работы или учебного заведения. Если у вас есть OneDrive для работы или учебного заведения, и вы входите в систему с той же учетной записью, что и для входа в Power BI, этот метод является наиболее эффективным способом сохранения CSV-файла и семантической модели, отчетов и панелей мониторинга в синхронизации Power BI. Так как Power BI и OneDrive находятся в облаке, Power BI подключается к файлу в OneDrive примерно каждый час. Если обнаружены изменения, семантическая модель, отчеты и панели мониторинга автоматически обновляются в Power BI.

OneDrive — персональный — если вы сохраняете файлы в своей учетной записи OneDrive, вы получите множество одинаковых преимуществ, как и в OneDrive для работы или учебного заведения. Самое большое различие заключается в том, что при первом подключении к файлу вам потребуется войти в OneDrive с учетной записью Майкрософт, которая отличается от того, что вы используете для входа в Power BI. При входе в OneDrive с учетной записью Майкрософт обязательно выберите параметр «Сохранить меня вошедшего». Таким образом, Power BI сможет подключаться к файлу примерно каждый час и убедиться, что семантическая модель в Power BI синхронизирована.

SharePoint. Сохранение файлов Power BI Desktop в SharePoint совпадает с сохранением в OneDrive для работы или учебного заведения. Самое большое различие заключается в том, как подключиться к файлу из Power BI. Вы можете указать URL-адрес или подключиться к корневой папке.

Импорт или подключение к CSV-файлу

Максимальный размер файла, который можно импортировать в Power BI, составляет 1 ГБ.

  1. В рабочей области Power BI выберите +Создать и нажмите кнопку «Отправить файл«.Screenshot of the workspace new menu with new and upload a file highlighted.
  2. выберите CSV. Screenshot of file type icons with CSV highlighted.
  3. Перейдите к файлу, который вы хотите отправить, и нажмите кнопку «Импорт«. В главной области Power BI появится новое окно сведений о семантической модели. Screenshot of the workspace with the uploaded CSV file.

Следующие шаги

Изучите данные. После получения данных из файла в Power BI пришло время изучить. Выберите дополнительные параметры (. ) и выберите параметр в меню.

Screenshot of the workspace contents with the more options icon highlighted.

Запланируйте обновление . Если файл сохраняется на локальном диске, можно запланировать обновление, чтобы семантическая модель и отчеты в Power BI оставались актуальными. Дополнительные сведения см. в статье об обновлении данных в Power BI. Если файл сохраняется в OneDrive, Power BI автоматически синхронизируется с ним примерно каждый час.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *