WD5 - разработка сайтов

Экспорт данных из 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 (Спасибо Алексею Петрову)

None