2012-02-10 2 views
4

Browsermob/Neustar создает файл MySQLdump, который вы можете использовать для запроса данных нагрузочного теста без ущерба для облачных часов (которые естественно оплачиваются). Файл дампа является стандартным файлом дампа, и хотя я понимаю, что mysqldump имеет compatible=mssql option, я, очевидно, не в состоянии его запустить самостоятельно. Глядя на содержимое файла (который чрезвычайно велик) с помощью текстового редактора, похоже, отображает серию операторов SQL, заканчивающихся массивной объемной вставкой. Я попытался открыть файл в Microsoft SQL Management Studio, но он разбился (известная ошибка), потому что файл был слишком большим.Импорт файла дампа MySQL в MSSQL

Итак, кто-нибудь знает инструмент, который будет импортировать файл дампа MySQL в MsSQL. Единственные варианты, которые я могу придумать, - это установить MySQL и импортировать файл дампа в него вместо этого, а затем передать данные через ODBC, но я действительно не хочу устанавливать MySQL, если только этого не нужно.

ВАЖНО: Для того, чтобы быть ясным, у меня есть файл дампа, ничего другого, и я не могу получить доступ к базе данных и не перезапускать дамп с любыми параметрами. Мне нужно работать с файлом, который мне дал.

Любые идеи?

Первые строки файла выглядят следующим образом:

-- MySQL dump 10.13 Distrib 5.1.58, for debian-linux-gnu (i686) 
-- 
-- Host: localhost Database: collector 
-- ------------------------------------------------------ 
-- Server version 5.1.58-1ubuntu1 

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 
/*!40103 SET @[email protected]@TIME_ZONE */; 
/*!40103 SET TIME_ZONE='+00:00' */; 
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 

-- 
-- Table structure for table `name_value_pairs` 
-- 

DROP TABLE IF EXISTS `name_value_pairs`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `name_value_pairs` (
    `id` int(8) unsigned DEFAULT NULL, 
    `tx_id` char(24) NOT NULL, 
    `step_id` int(8) unsigned DEFAULT NULL, 
    `name` varchar(100) NOT NULL, 
    `value` varchar(100) DEFAULT NULL, 
    KEY `name_value_pairs_id` (`id`), 
    KEY `name_value_pairs_tx_id` (`tx_id`), 
    KEY `name_value_pairs_step_id` (`step_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

-- 
-- Dumping data for table `name_value_pairs` 
-- 

LOCK TABLES `name_value_pairs` WRITE; 
/*!40000 ALTER TABLE `name_value_pairs` DISABLE KEYS */; 
/*!40000 ALTER TABLE `name_value_pairs` ENABLE KEYS */; 
UNLOCK TABLES; 

-- 
-- Table structure for table `object` 
-- 

DROP TABLE IF EXISTS `object`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `object` (
    `bytes` int(10) unsigned NOT NULL, 
    `domain` varchar(255) NOT NULL, 
    `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', 
    `err_msg` varchar(255) DEFAULT NULL, 
    `host` varchar(255) NOT NULL, 
    `method` varchar(16) DEFAULT NULL, 
    `obj_id` int(8) unsigned NOT NULL, 
    `obj_num` mediumint(4) unsigned NOT NULL, 
    `path` varchar(4096) NOT NULL, 
    `partial_url_md5` varchar(32) NOT NULL, 
    `protocol` varchar(16) NOT NULL, 
    `resolved_ip_addr` varchar(255) DEFAULT NULL, 
    `start_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', 
    `status_code` smallint(4) NOT NULL, 
    `step_id` int(8) unsigned NOT NULL, 
    `time_active` mediumint(6) unsigned DEFAULT NULL, 
    `blocked_time` mediumint(6) unsigned DEFAULT NULL, 
    `dns_lookup_time` mediumint(6) unsigned DEFAULT NULL, 
    `connect_time` mediumint(6) unsigned DEFAULT NULL, 
    `ssl_handshake_time` mediumint(6) unsigned DEFAULT NULL, 
    `send_time` mediumint(6) unsigned DEFAULT NULL, 
    `time_to_first_byte` mediumint(6) unsigned DEFAULT NULL, 
    `receive_time` mediumint(6) unsigned DEFAULT NULL, 
    `tx_id` char(24) NOT NULL, 
    `url` varchar(4096) NOT NULL, 
    KEY `object_partial_url_md5` (`partial_url_md5`), 
    KEY `object_obj_id` (`obj_id`), 
    KEY `object_obj_num` (`obj_num`), 
    KEY `object_step_id` (`step_id`), 
    KEY `object_tx_id` (`tx_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

-- 
-- Dumping data for table `object` 
-- 

LOCK TABLES `object` WRITE; 
/*!40000 ALTER TABLE `object` DISABLE KEYS */; 

Затем идет массовой вставки.

+0

Вы можете использовать mysql.exe для его импорта, mysql -u username -p -h host databasename ComputerSaysNo

+0

@DorinDuminica У меня нет MySQL, и я Я пытаюсь избежать его установки. – Junto

ответ

2

Эта информация в файле только удалить и воссоздать схему базы данных (что я предполагаю, что у вас уже есть), так что вы, вероятно, это не нужно ,

Основная часть вставки является интересной, возможно, вы можете выделить эту часть для каждой таблицы в разные файлы и загрузить ее в MsSQL с BULK INSERT из T-SQL, вы можете определить разделитель и другие параметры для этой вставки BULK вы должны соответствовать любому формату, который у вас есть.

+0

Если я понял вас правильно, мне нужно проанализировать этот файл и преобразовать операторы SQL в нечто, что может понять MsSQL? – Junto

+0

Да, если вы уже создали схему, удалите всю таблицу create/alter из файла. Затем просто проверьте, не совместимы ли вставки с MsSQL и попытайтесь настроить их (не должно быть много изменений) в формате MsSQL. И запустите его. – pedromarce

+0

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

Смежные вопросы