Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Probleme mit Blobfeldern bei der Datenkonvertierung (https://www.delphipraxis.net/163206-probleme-mit-blobfeldern-bei-der-datenkonvertierung.html)

Ruediger123 19. Sep 2011 16:18

Datenbank: DBISAM • Version: 4.30 • Zugriff über: DBISAM

Probleme mit Blobfeldern bei der Datenkonvertierung
 
Hi, bin dabei eine bestehende Datenbank (DBISAM) nach MySQL zu konvertieren. Am liebsten würde ich das ganze mit Importfunktion "Load DATA INFILE" erledigen. Hierzu brauch muss ich die Daten von meinen alten DBISAM-Tabellen in ein Text- bzw. CSV-Format umwandeln. Hierbei habe ich Probleme mit den Blobfeldern. Habe keine Ahnugn wie ich die am Besten nach csv exportiere.

mkinzler 19. Sep 2011 16:21

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
CSV eignet sich nur bedingt dafür. Entweder in XML oder die Blobs getrennt von den restlichen Daten und dann separat importieren

Union 19. Sep 2011 16:29

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Oder Du schreibst Dir in Delphi eine kleine "DataPump" mit der Du über die Tabellen iterierst. Setzt voraus dass Du Treiber bzw. Komponenten für beide Datenbanken für Delphi hast.

Ruediger123 20. Sep 2011 08:01

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Zitat:

Zitat von mkinzler (Beitrag 1125357)
CSV eignet sich nur bedingt dafür. Entweder in XML oder die Blobs getrennt von den restlichen Daten und dann separat importieren

Was meinst du mit "nur bedingt"? XML ist mir neu. Habe in einem Buch gelesen, dass CSV bzw. Textformat am schnellsten zu importieren geht.


Zitat:

Zitat von Union (Beitrag 1125359)
Oder Du schreibst Dir in Delphi eine kleine "DataPump" mit der Du über die Tabellen iterierst. Setzt voraus dass Du Treiber bzw. Komponenten für beide Datenbanken für Delphi hast.

Habe ich schon probiert funktioniert auch, doch es dauert in meinem Fall sehrlange. Es sind so 40GB die so schnell wie möglich importiert werden müssen. Hoffe mir mit dem Textimport einen Geschwindigkeitszuwachs.

Union 20. Sep 2011 08:26

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Zitat:

Hoffe mir mit dem Textimport einen Geschwindigkeitszuwachs
Hast Du das mal getestet? Oder ist das nur eine Vermutung?

mkinzler 20. Sep 2011 08:53

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Zitat:

Hoffe mir mit dem Textimport einen Geschwindigkeitszuwachs
Die Daten müssen hierfür ja erst konvertiert werden, dass sie in Text darstellbar sind (uuencode o.ä.) und später zurück in binär. Ich bezweifle, dass das schneller geht.

Ruediger123 20. Sep 2011 12:27

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Habe es in einem Buch gelesen "MySQL für Adminsitratoren" hier steht dass der Import von großen Daten dringend über .csv empfohlen wird da dies schneller sei.

Union 20. Sep 2011 12:34

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Am schnellsten geht es ein SQL-Script. Schreib Dir doch ein Tool, was die Daten als SQL exportiert. Das führst Du dann mit MySQL Admin aus. Beispiel:

Code:
CREATE TABLE `mantis_bug_file_table` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `bug_id` int(10) unsigned NOT NULL default '0',
  `title` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `description` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `diskfile` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `filename` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `folder` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `filesize` int(11) NOT NULL default '0',
  `file_type` varchar(250) collate latin1_german1_ci NOT NULL default '',
  `date_added` datetime NOT NULL default '1970-01-01 00:00:01',
  `content` longblob NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_bug_file_bug_id` (`bug_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=4 ;


INSERT INTO `mantis_bug_file_table` (`id`, `bug_id`, `title`, `description`, `diskfile`, `filename`, `folder`, `filesize`, `file_type`, `date_added`, `content`) VALUES
(3, 25, '', '', 'upload/ec4ef4e71a6c0f1c6c3b993fd5102757', '20070104104040571.pdf', 'upload/', 203462, 'application/pdf', '2007-01-04 11:29:53', 0x255044462d<hier stehen dann noch 200kb Hey>8f66);

FredlFesl 20. Sep 2011 14:40

AW: Probleme mit Blobfeldern bei der Datenkonvertierung
 
Normalerweise sind bulk insert Operationen am schnellsten. Dabei werden aber eben genau die BLOB-Daten nicht unterstützt.
Versuche, nur die 'normalen' Daten als CSV-Datei abzulegen und über die schnelle Routine zu importieren. Anschließend überträgst Du die BLOB-Daten.

Andere Idee: Wenn mySQL CSV-Dateien importieren kann, dann vielleicht auch exportieren. Erstelle eine Testtabelle mit BLOB und exportiere sie. Dann weisst Du ja, wie mySQL das gerne hätte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz