NAME
dsql_import - Kommandozeilen-Tool für datenbankunabhängige DB-Imports
SYNOPSIS
dsql_import [-V] Konfigurationsdatei-Name
dsql_import -c
-V keine Statusmeldungen auf STDOUT ausgeben
-c Muster-Konfigurationsdatei auf STDOUT ausgeben
DESCRIPTION
Dieses Tool ermöglicht einen Import von Daten aus einem bestimmten Verzeichnis im Filesystem in ein bestehendes Datenbank-Schema (Oracle, MySQL oder mSQL).
Es werden alle Daten aus dem angegebenen Verzeichnis importiert, für die es einen Eintrag im übergebenen Type-Hash gibt (siehe Abschnitt 'KONFIGURATIONSDATEI').
Das angegebene Verzeichnis enthält für jede zu importierende Tabelle ein Unterverzeichnis mit dem Namen der entsprechenden Tabelle. Dort sind die zugehörigen Dateien abgelegt:
- format.conf
-
Enthält Informationen (Spaltenname, Typ und maximale Länge) zu den zugehörigen Tabellen-Spalten.
- data.dump
-
Enthält die eigentlichen Daten, wobei die einzelnen Spalten durch Tabulatoren voneinander getrennt sind.
- blob_1.bin - blob_n.bin
-
Enthält eine Tabelle BLOB- oder CLOB-Spalten, sind die Inhalte dieser Spalten in separaten Dateien gespeichert. In der CSV-Datei ist dann für diese Spalten nur der Name der zugehörigen Datei abgelegt.
Die Start- und Endzeit des Imports, sowie die übergebenen Parameter und die Statusmeldungen, die während des Imports ausgegeben werden, werden in eine Meta-Datei im angegebenen Verzeichnis geschrieben.
Für jeden Import wird eine neue Meta-Datei erzeugt.
KONFIGURATIONSDATEI
Die Konfigurationsdatei für das Import-Tool muss folgende Einträge enthalten:
- data_source
-
Data-Source der Zieldatenbank, in die die Daten importiert werden
- username
-
Schema-Name der Zieldatenbank, in die die Daten importiert werden
- password
-
DB-Passwort
- directory
-
kompletter Pfad des Verzeichnisses, in dem die zu importierenden Daten liegen
- type_hash_file
-
kompletter Pfad der Datei, in der das Type-Hash für die zu importierenden Tabellen abgelegt ist
Zusätzlich gibt es die folgenden optionalen Parameter:
- inserts_per_transaction
-
Anzahl der DB-Inserts, nach denen jeweils ein Commit erfolgen soll
Beispiel: inserts_per_transaction => 1 gibt an, dass nach jedem eingefügten Datensatz committed wird.
Wird der inserts_per_transaction-Parameter nicht angegeben, erfolgt jeweils ein Commit pro Tabelle.
- recode
-
Zeichensatzkonvertierung, im Formt CHARSET..CHARSET. Folgende Angaben sind hier möglich:
latin1..utf8 latin1..latin1 utf8..utf8
Default ist latin1..latin1.
TYPE-HASH
Die im Konfigurationsdatei angegebene Type-Hash-Datei muss folgenden Aufbau haben (siehe auch Dimedis::Sql):
$type_hash_ref = {
'table_name_x' => {
'column_name_i' => 'serial',
'column_name_j' => 'varchar(999)',
'column_name_k' => 'clob',
'column_name_l' => 'blob' ,
},
'table_name_y' => {
'column_name_i' => 'numeric(2)',
'column_name_j' => 'blob',
'column_name_k' => 'char(16)',
},
};
AUTOREN
Sabine Tonn, sabine AT dimedis.de
Jörn Reder, joern AT dimedis.de
COPYRIGHT
Copyright (c) 2002-2004 dimedis GmbH, All Rights Reserved
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 132:
Non-ASCII character seen before =encoding in 'für'. Assuming CP1252