Экспорт данных из TecDoc в MySQL
TecDOC - крупнейший электронный каталог неоригинальных автозапчастей для легковых и грузовых автомобилей.
Предусмотрен поиск деталей по артикулам большинства производителей автозапчастей и оригинальным номерам автопроизводителей, имеется возможность подбора по модели автомобиля.
Подробная информация об автозапчастях включает в себя рисунки и размеры деталей, список оригинальных номеров, применимость автозапчасти. . Предоставлена информация по автомобилям с 1960-х годов.
Для создания интернет-магазина продажи автозапчастей необходимо произвести конвертацию (экспорт) данных из ТекДОКа в БД MySQL.
Текущая версия каталога ТекДок - 1 квартал 2016 года 2016Q1.
На настоящий момент доступны две версии каталога ТекДок:
- версия на 2-х DVD без картинок, предназначена для Европы - так называемая стандартная, урезанная, кастрированная (~11Гб)
- версия на 7-и DVD полная версия Текдок 2016Q1 с картинками - предназначенная для стран бывшего СССР кроме Прибалтики.
Процесс экспорта данных из ТекДОКа можно разделить на несколько этапов:
1. Установка ТекДОКа и подключение к нему.
2. Экспорт данных из ТекДОКа и удаление ненужной информации.
3. Экспорт рисунков и фотографий из ТекДОКа и преобразование их в формат .jpg
Установка ТекДОКа и подключение к нему:
- На сегодняшний день актуальна версия TecDoc 2016Q1 1-й квартал 2016 года - скачайте ее.
- Используя DTLite или аналог установитеТекдок как "Сетевая инсталяция сервер".
- Установите WAMP.
- Настройте ODBC TransBase для подключения: WIN+R, в окне ввести "C:\Windows\SysWOW64\odbcad32.exe", ENTER, открыть вкладку "Системные DNS", нажать кнопку "Добавить". Пролистать вниз, выделить "Transbase ODBC TECDOC 1_2016", нажать кнопку "Готово".
- Настройки в окне "Transbase ODBC Driver — Administration" (открывается автоматически):
DataSource: TecDoc2016 Description: TecDoc2016 Database: TECDOC_CD_1_2016
Server: localhost User: tecdoc Password: tcd_error_0
нажать кнопку "ОК" и еще раз нажать кнопку "ОК".
- Создать базу данных MySQL: запустить WAMP сервер, MySQL => MySQL CONSOLE => Enter, в открывшемся окне ввести "CREATE DATABASE TECDOC2016Q1 CHARACTER SET utf8 COLLATE utf8_general_ci;".
- Если предыдущие шаги выполнены правильно, то используя утилиту можно увидеть все таблицы TecDoc и их содержимое.
Экспорт данных из ТекДОКа и удаление ненужной информации:
- Экспортируйте данные необходимых таблиц в созданную БД TECDOC2016Q1, используя DBMigration (необходимо создать подключения к TransBase TecDoc и созданной TECDOC2016Q1 в MySQL, выбрать необходимые таблицы и начать экспорт).
- Экспорт TecDoc в MySQL может занимать нескольких суток, в зависимости от конфигурации и настроек сервера.
- Переименуйте полученные таблицы:
RENAME TABLE `tecdoc2016q1`.`tof_articles` TO `tecdoc2016q1`.`ARTICLES`;
RENAME TABLE `tecdoc2016q1`.`tof_article_criteria` TO `tecdoc2016q1`.`ARTICLE_CRITERIA`;
RENAME TABLE `tecdoc2016q1`.`tof_article_info` TO `tecdoc2016q1`.`ARTICLE_INFO`;
RENAME TABLE `tecdoc2016q1`.`tof_art_lookup` TO `tecdoc2016q1`.`ART_LOOKUP`;
RENAME TABLE `tecdoc2016q1`.`tof_brands` TO `tecdoc2016q1`.`BRANDS`;
RENAME TABLE `tecdoc2016q1`.`tof_countries` TO `tecdoc2016q1`.`COUNTRIES`;
RENAME TABLE `tecdoc2016q1`.`tof_country_designations` TO `tecdoc2016q1`.`COUNTRY_DESIGNATIONS`;
RENAME TABLE `tecdoc2016q1`.`tof_criteria` TO `tecdoc2016q1`.`CRITERIA`;
RENAME TABLE `tecdoc2016q1`.`tof_designations` TO `tecdoc2016q1`.`DESIGNATIONS`;
RENAME TABLE `tecdoc2016q1`.`tof_des_texts` TO `tecdoc2016q1`.`DES_TEXTS`;
RENAME TABLE `tecdoc2016q1`.`tof_doc_types` TO `tecdoc2016q1`.`DOC_TYPES`;
RENAME TABLE `tecdoc2016q1`.`tof_engines` TO `tecdoc2016q1`.`ENGINES`;
RENAME TABLE `tecdoc2016q1`.`tof_graphics` TO `tecdoc2016q1`.`GRAPHICS`;
RENAME TABLE `tecdoc2016q1`.`tof_link_art` TO `tecdoc2016q1`.`LINK_ART`;
RENAME TABLE `tecdoc2016q1`.`tof_link_ga_str` TO `tecdoc2016q1`.`LINK_GA_STR`;
RENAME TABLE `tecdoc2016q1`.`tof_link_gra_art` TO `tecdoc2016q1`.`LINK_GRA_ART`;
RENAME TABLE `tecdoc2016q1`.`tof_link_la_typ` TO `tecdoc2016q1`.`LINK_LA_TYP`;
RENAME TABLE `tecdoc2016q1`.`tof_link_typ_eng` TO `tecdoc2016q1`.`LINK_TYP_ENG`;
RENAME TABLE `tecdoc2016q1`.`tof_manufacturers` TO `tecdoc2016q1`.`MANUFACTURERS`;
RENAME TABLE `tecdoc2016q1`.`tof_models` TO `tecdoc2016q1`.`MODELS`;
RENAME TABLE `tecdoc2016q1`.`tof_search_tree` TO `tecdoc2016q1`.`SEARCH_TREE`;
RENAME TABLE `tecdoc2016q1`.`tof_suppliers` TO `tecdoc2016q1`.`SUPPLIERS`;
RENAME TABLE `tecdoc2016q1`.`tof_supplier_addresses` TO `tecdoc2016q1`.`SUPPLIER_ADDRESSES`;
RENAME TABLE `tecdoc2016q1`.`tof_supplier_logos` TO `tecdoc2016q1`.`SUPPLIER_LOGOS`;
RENAME TABLE `tecdoc2016q1`.`tof_text_modules` TO `tecdoc2016q1`.`TEXT_MODULES`;
RENAME TABLE `tecdoc2016q1`.`tof_text_module_texts` TO `tecdoc2016q1`.`TEXT_MODULE_TEXTS`;
RENAME TABLE `tecdoc2016q1`.`tof_types` TO `tecdoc2016q1`.`TYPES`;
RENAME TABLE `tecdoc2016q1`.`tof_type_numbers` TO `tecdoc2016q1`.`TYPE_NUMBERS`;
- удалите поля _CTM, подключите модуль продажи автозапчастей, проверьте работу.
Чтобы подключить БД TECDOC`а к MS SQL Server в качестве Linked Server, необходимо следующее:
1) Создать ODBC DSN: Панель управление -> Администрирование -> Источники данных (ODBC) -> Системный DSN -> Добавить. Здесь выбираем драйвер Transbase, который должен был появиться после установки Tecdoc (нечто вроде "Transbase ODBC TECDOC CD 3_2010", название зависит от версии текдока) и настраиваем подключение следующим образом:
- Datasource: TECDOC_CD_1_2016
- Database: TECDOC_CD_1_2016
- Server: localhost
- User: tecdoc
- Password: tcd_error_0
2) На свервере MS SQL выполняем:
EXEC sp_addlinkedserver @server='TECDOC', @srvproduct='TECDOC_2011_3', @provider='MSDASQL', @datasrc='TECDOC_CD_3_2011'
Сразу скажу: вариант с ковырянием в текдок из MS SQL сервера - не самый удачный. Во-первых, производительность переноса данных сравнительно невелика (по сравнению, скажем, с переносом с помощью самописной Java-программы и JDBC-ODBC моста). Во-вторых, что уже совсем критично: при попытке выполнения INSERT ... SELECT запроса, переносящего данные из Tecdoc`а в подключенный как Linked Server MySQL, BLOB / TEXT данные выудить не получается:
OLE DB provider "MSDASQL" for linked server returned message "Вставка или обновление на основе запроса значений BLOB не поддерживается."
3) Используем MYSQL-Front для конвертации данных из transbase, предварительно создав в MYSQL базу и таблицы.
Структуру таблиц можно скачать здесь >> https://yadi.sk/d/e1-3MiA5pwVWj (Спасибо Алексею Петрову)