0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 2
1

Чем открыть xml-файл объемом 3.2 Гб (и преобразовать данные в таблицу)?

12.02.2019, 13:13. Показов 23691. Ответов 14

Author24 — интернет-сервис помощи студентам
Есть xml файл из open data размером 3,2 гб.
Задача - извлечь из него данные, преобразовав в табличную форму.
Эксель не справляется с таким объемным файлом.
Какой программой можно открыть и преобразовать данные?

Ссылка на источник данных: http://www.fsrar.ru/opendata/7710747640-reestr/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2019, 13:13
Ответы с готовыми решениями:

В form1 открыть таблицу Excel, куда вносить данные, а в form2 - таблицу с уже рассчитанными показателями
Всем доброго времени суток. Имеется файл екселя в котором есть таблицы в которые заносятся данные...

Преобразовать HTML таблицу в XML
Можете ли подсказать какой-нибуть скрипт на php перевода из html в xml. У меня есть html в ней...

Как преобразовать XML в HTML таблицу?
Дорогие друзья! Помогите пожалуйста! Как XML с таким содержанием преобразовать в HTML таблицу? ...

На внешний жесткий диск объемом более 300 Гб не_возможно записать файл объемом более 5 Гб
Может я не совсем в тему. Проблема заключается в том, что на жесткий внешний диск объемом более...

14
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
12.02.2019, 14:05 2
разрезать на кусочки не предлагать?
0
0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 2
12.02.2019, 14:34  [ТС] 3
Если это поможет извлечь данные, то как его на кусочки распилить?
Мне главное извлечь информацию из него.
Каким способом не важно.
Е
0
Модератор
Эксперт MS Access
11956 / 4824 / 779
Регистрация: 07.08.2010
Сообщений: 14,128
Записей в блоге: 4
12.02.2019, 15:10 4
Цитата Сообщение от z_sergey Посмотреть сообщение
Если это поможет извлечь данные, то как его на кусочки распилить?
1 запись ориентировочно 1500 знаков
это приведет к 2млн записей ---и ексель придется резать

Добавлено через 8 минут
NameПолное и сокращенное наименование организации с указанием ее организационно правовой формыИНН организацииКПП организацииАдрес место нахождения организацииМесто нахождения адрес обособленного подразделения организации осуществляющего лицензируемый вид деятельностиКПП обособленного подразделения организации осуществляющего лицензируемый вид деятельностиКод субъекта Российской Федерации по месту нахождения организацииКод субъекта РФ по месту нахождения обособленного подразделения организации осуществляющего лицензируемый вид деятельностиВид лицензируемой деятельности организацииНомер ранее выданной лицензииДата выдачи лицензииДата окончания действия лицензииНомер лицензии соответствующий номеру записи в реестреСведения о действии лицензииДата изменения сведений о действии лицензииОснование изменения сведений о действии лицензииИстория изменений сведений о действии лицензииНомер бланкаОрган выдавший лицензиюАдрес электронной почты организации
reestr xml"Общество с ограниченной ответственностью ""Белуга Маркет"" Сокращенно: ООО ""Белуга Маркет"""7727251521500945001РОССИЯ, 109044, МОСКОВСКАЯ ОБЛ, , Звенигород г, , Пролетарская ул, д. 40А, , РОССИЯ, 142000, МОСКОВСКАЯ ОБЛ, г. Домодедово, мкр-н Северный, ул. Логистическая, д. 1/9, корп. № 16, лит. 16Б, этаж 1, номер помещения 1, часть номера по плану 26а (1970, 44 кв.м)$ помещение №2, номер по плану 26, 5009450015050закупка, хранение и поставки алкогольной продукцииА 64727019 дек 201119 апр 201550ЗАП0003141переоформлена19 апр 2015"Взамен выписана новая ""РА 001883""" А 600777Росалкогольрегулирование 
                     
                     
                     
0
1 / 2 / 2
Регистрация: 11.06.2019
Сообщений: 108
01.11.2019, 07:32 5
Тоже актуальный вопрос. Есть xml файл весом 8ГБ. Как распилить его?
0
Эксперт .NET
12089 / 8367 / 1280
Регистрация: 21.01.2016
Сообщений: 31,543
01.11.2019, 08:01 6
XML'ки такого конского размера я вообще не вижу иначе как импортить в какую-нибудь СУБД и уже с СУБД работать. Тут и EXCEL подавится.
0
21 / 15 / 6
Регистрация: 26.05.2019
Сообщений: 119
05.11.2019, 21:54 7
Цитата Сообщение от PavelBree Посмотреть сообщение
Тоже актуальный вопрос. Есть xml файл весом 8ГБ. Как распилить его?
В качестве совета:
Я бы попробовал переименовать\пересохранить исходный файл в txt
разбить его построчно [del]
 Комментарий модератора 
п. 5.8 Правил форума:
Запрещено публиковать ссылки на другие форумы, а также их пропаганда. Публикация ссылок на форумы допустима только в разделе "Готовые движки, cms и форумы" для решения технических проблем и с предварительного одобрения администрации.

Дальше варианты открыть экселем, пересохранить\переименовать в xml и т.п.
0
Эксперт .NET
12089 / 8367 / 1280
Регистрация: 21.01.2016
Сообщений: 31,543
06.11.2019, 04:04 8
Zuikovod, как переименовывание поможет? И что значить "разбить построчно" XML-документ?
0
Модератор
Эксперт MS Access
11956 / 4824 / 779
Регистрация: 07.08.2010
Сообщений: 14,128
Записей в блоге: 4
06.11.2019, 06:50 9
Цитата Сообщение от Usaga Посмотреть сообщение
И что значить "разбить построчно" XML-документ?
основные проблемы при этом
- все эти 3 и более гб идут одной строкой,т.к. вместо разделителя chr(13)+chr(10) применен только chr(10) и input line не работает
- часто при этом еще и кодировка utf-8

Добавлено через 10 минут
вот один из вариантов, но не уверена, что финальный
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Sub mme190213F()
Dim fs, a, retstring, S1, ss, s2, kdoc, spath
Set fs = CreateObject("Scripting.FileSystemObject")
''Set a = fs.OpenTextFile("c:\RABC\m002.xml", ForReading, False)
spath = Excel.ActiveWorkbook.Path & "\"
Set a = fs.OpenTextFile(spath & "m000.xml", ForReading, False)
Open "c:\rabc\ww.a2" For Output As #3
''d:\rab\!!_ALKOGOL\m000.xml
s2 = ""
Dim xm, x1, x1k, k2, k3
Dim ym, y1, y1k
k2 = 10000
k3 = 0
kdoc = 0
Open "c:\rabc\w3" & k2 & ".xml" For Output As #2
Do While a.AtEndOfStream <> True
    S1 = a.Read(3000000)
    ss = s2 & S1
    xm = Split(ss, "<")
    x1 = LBound(xm, 1) + 1
    x1k = UBound(xm, 1)
    Debug.Print k2, x1k
    k2 = k2 + 1
    k3 = k3 + 1
    If k3 > 3333 Then
    Exit Do
    End If
    Print #2, "</Detail_Collection>"
Print #2, "</table1>"
Print #2, "</Report>"
    Close #2
    If k2 > 10003 Then
    '''''''''''''''''''''''''''
    Reset
    Exit Sub
''    --------------------------------
    Open "c:\rabc\w3" & 10005 & ".xml" For Output As #2
    Else
    Open "c:\rabc\w3" & k2 & ".xml" For Output As #2
    End If
''Debug.Print k2
    Do While x1 < x1k
    S1 = "<" & xm(x1)
    'Debug.Print S1
    kdoc = kdoc + 1
    If InStr(S1, "1-14") > 0 Then
    Debug.Print S1
    
    Print #3, S1
    
    End If
    
    S1 = Replace(S1, "="" ", "=""")
    ym = Split(S1, """ ")
    y1 = LBound(ym, 1)
    y1k = UBound(ym, 1)
    Do While y1 < y1k
    
    
    Print #2, kdoc & "=" & y1 & "=" & ym(y1)
    ''Mid(S1, 1, 12); "=="
    y1 = y1 + 1
    Loop
    x1 = x1 + 1
    Loop
    s2 = "<" & xm(x1k)
    'Debug.Print "---------------"
    'Debug.Print s2
    'Debug.Print "--------------"
Loop
a.Close
Reset
End Sub
0
Эксперт .NET
12089 / 8367 / 1280
Регистрация: 21.01.2016
Сообщений: 31,543
06.11.2019, 07:26 10
shanemac51, такие вещи парсятся как DOM, поэтому совершенно не важно в одну строку там всё или в несколько.

Вот, накидал простой проект на .NET Core (C#):SaxReader.zip

Вытаскиваются только наименование, два адреса и состояние лицензии. На выходе получается HTML в пятьсот метров, архивом сюда не прикрепить.

Так же побаловался с экспортом данных напрямую в MySQL, Firebird и Postgres, но не думаю, что имеет смысл выкладывать сюда этот проект (хотя и могу), ибо вряд ли люди спрашивавшие о просмотре такой XML поймут что с этим делать.
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
28.05.2020, 09:39 11
На днях просили помощи именно с этим data-20200401t0000-structure-20190918t0000.xml на 8ГБ - вполне успешно загружается в QlikSense (пока ещё пользование бесплатно).
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
28.05.2020, 10:44 12
Цитата Сообщение от Hugo121 Посмотреть сообщение
вполне успешно загружается в QlikSense
а давайте своими именами называть - в память
разработчики Qlik молодцы - в память загрузили, а что дальше? Пока память есть оно будет работать
1
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
28.05.2020, 14:52 13
Да там данных то всего 1 279 403 строки, приложение 44 МБ (но я только половину полей брал), если выгрузить в qvd то 14 столбцов умещаются в 171 МБ.
Памяти на компе 8ГБ, но параллельно было ещё много чего отрыто гига на 4 и ничего не упало. Проц конечно на 100% работал 7 минут...

Добавлено через 15 минут
...А что дальше - а что нужно? Можно посмотреть, фильтром что-то выбрать (быстро, тормозов нет), можно выгрузить в файл - но в xlsx не влезет, текст/csv может получиться такой что никто не прочитает
0
qwertehok
28.05.2020, 14:57
  #14

Не по теме:

кстати, да
если нужно открыть и пофильтровать, то Qlik лучше чем эксель на огромных данных
плюс свой язык позволяет делать крутые штуки.
клиент бесплатный у них (а вот за сервер они хотят нереально денег, а за интеграцию их ПО под твои задачи "нереально"*2)

0
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 7
11.11.2021, 13:54 15
А дальше из Клика выгрузить несколько таблиц (csv), разбив хоть по 1 записи, хоть по 1 000 000, как душе угодно. Каждый выгружаемый файл может содержать данные, например за 1 день, за 1 месяц, ну или что там, вообще, есть.
0
11.11.2021, 13:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2021, 13:54
Помогаю со студенческими работами здесь

Чем преобразовать yml в таблицу csv?
Есть yml-файл (яндекс маркет) Как его преобразовать в таблицу? я уже умею парсить с xpath...

Вывести данные в таблицу из xml файла. - Анализ XML файла, выгружаемого программой SPU_ORB.
Есть такой файлик с расширением .xml (из программы spy_orb) в нем много строк, но нам нужно...

Как добавить данные в xml-файл, используя пространство имен System.Xml.Linq
Допустим, есть файл xml, я его взял из этого треда:...

Чем можно состряпать таблицу из xml?
Нужно распарсить файл .xml вида: &lt;?xml version=&quot;1.0&quot; encoding=&quot;WINDOWS-1251&quot;?&gt; &lt;journal&gt;...

Как преобразовать данные из HTML-файла в XML?
Всем привет я только начал изучать c# и дали задание и я не до конца понял что мне нужно...

Не открывается файл Документ Office Open XML (docx) - файл поврежден, поэтому его нельзя открыть
Посмотрите, пожалуйста кто может! очень важно:cry: документ , который не отрывается. помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru