The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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