powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / База 3 млн. штрихкодов
5 сообщений из 5, страница 1 из 1
База 3 млн. штрихкодов
    #39705447
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут выложили базу штрихкодов в CSV

В аттаче небольшой скрипт, который перегоняет ее в базу sqlite и нормализует в 3 таблицы:
Код: sql
1.
2.
3.
create table Brand (brand_id int primary key, brand text)
create table Category (cat_id int primary key, category text)
create table EAN (ean int primary key, tovar text, cat_id int references Category, brand_id int references Brand)


ПолеОписаниеEAN.eanштрихкодEAN.tovarнаименование товараBrand.brandбрэндCategory.categoryкатегория

Текущий размер 508 Мб:
ТаблицаЗаписейBrand36 009Category2 275EAN2 922 766

Инструкция по применению ean2sqlite.cmd внутри.

Может кому пригодится по прямому назначению или просто потестить производительность sqlite.
...
Рейтинг: 0 / 0
База 3 млн. штрихкодов
    #39705695
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Ругается на строках где в конце есть табуляция.

C:\77777777777>ean2sqlite.cmd
Could Not Find C:\77777777777\ean.db
off
import uhtt_barcode_ref_all.csv ...
uhtt_barcode_ref_all.csv:1643688: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:1643689: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:1870051: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:1870052: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050294: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050295: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050311: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050312: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050339: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050340: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050342: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2050343: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2423876: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2423877: expected 7 columns but found 5 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2897445: expected 7 columns but found 3 - filling the rest with NULL
uhtt_barcode_ref_all.csv:2897446: expected 7 columns but found 5 - filling the rest with NULL
delete wrong
set NULL
create Category
rows
2275
create Brand
rows
36009
create EAN
rows
2922766
vacuum
...
Рейтинг: 0 / 0
База 3 млн. штрихкодов
    #39705702
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PPAРугается на строках где в конце есть табуляция.
Исходные данные немного кривоваты. В некоторых наименованиях есть перевод строки, который одну строку рвет на две. Хорошо что они игнорируются.
Думаю что сотня-другая пропущенных строк ничего не поменяет. Иначе из-за них надо полноценный парсер писать.
...
Рейтинг: 0 / 0
База 3 млн. штрихкодов
    #39705733
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

тут уникальные индексы должны быть
echo create unique index category_category_idx ON category(category); >> create.sql
echo create unique index brand_brand_idx ON brand(brand); >> create.sql

а этот можно выкинуть
echo create index ean_tovar_idx ON ean(tovar); >> create.sql

ведь искать будут like '%бла-бла-бла%'?
и размер становится 335 Мб.
...
Рейтинг: 0 / 0
База 3 млн. штрихкодов
    #39705797
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PPADima T,

тут уникальные индексы должны быть
echo create unique index category_category_idx ON category(category); >> create.sql
echo create unique index brand_brand_idx ON brand(brand); >> create.sql
Для полноценной БД - должны, а тут дефакто readonly БД, поэтому без разницы.

PPAа этот можно выкинуть
echo create index ean_tovar_idx ON ean(tovar); >> create.sql

ведь искать будут like '%бла-бла-бла%'?
и размер становится 335 Мб.
это пофиг, не потребуется - только место на диске будет занимать. 180 мб на диске это незначительная мелочь.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / База 3 млн. штрихкодов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]