Datenbank erstellen: Unterschied zwischen den Versionen

OpenGeoDB & GISWiki - Das freie Portal für Geoinformatik (GIS)
Wechseln zu: Navigation, Suche
(Verlinkung hinzugefügt)
(Einspielen eines fertigen Dumps)
 
(9 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Die SQL-Daten werden per Skript aus den .tab-Dateien erzeugt. Um eine vollständige SQL-Datenbank mit den Basisdaten der OpenGeoDB zu erhalten sind drei Schritte notwendig:
+
Die zur Verfügung gestellten SQL-Daten werden per Skript aus den .tab-Dateien erzeugt.  
== Basisdaten ==
+
 
=== Schritt 1 ===
+
Die in dieser Anleitung verwendeten SQL-Dateien mit den Daten sind unter http://fa-technik.adfc.de/code/opengeodb/ zu finden.
 +
 
 +
Dabei kann entweder ein fertiger Dump der Datenbank aus dem Unterverzeichnis [http://fa-technik.adfc.de/code/opengeodb/dump dump] eingespielt werden, oder man stellt sich seine eigene Datenbank nach individuellen Bedürfnissen zusammen.
 +
 
 +
== Individuelle Auswahl der Daten ==
 +
Um eine vollständige SQL-Datenbank mit den Basisdaten der OpenGeoDB zu erhalten sind drei Schritte notwendig:
 +
=== Basisdaten ===
 +
==== Schritt 1 ====
 
Um die Datenbank-Struktur zu erstellen muss als erstes der in opengeodb-begin.sql enhaltene Struktur-Dump in die Datenbank importiert werden.
 
Um die Datenbank-Struktur zu erstellen muss als erstes der in opengeodb-begin.sql enhaltene Struktur-Dump in die Datenbank importiert werden.
 
      
 
      
Zeile 13: Zeile 20:
 
  [[Geodb_changelog|geodb_changelog]]
 
  [[Geodb_changelog|geodb_changelog]]
  
=== Schritt 2 ===
+
'''Hinweis:''' Der Dump erzeugt Tabellen im Format InnoDB, was die Angabe von Foreign Key Checks ermöglicht, aber auch die Import-Dauer der Daten drastisch erhöht. Allgemein steht InnoDB in dem Ruf um den Faktor 2-3 mal langsamer zu sein als MyISAM. Wer also auf Foreign Key Checks verzichten kann, sollte in Erwägung ziehen, das SQL entsprechend für MyISAM-Tabellen anzupassen. Im wesentlichen entfernt man dafür die check- und references-Anweisungen und stellt den TYPE für die Tabelle auf MyISAM.
 +
 
 +
==== Schritt 2 ====
  
 
Die folgenden Dateien enhalten dann die eigentlichen Nutzdaten nach Ländern gruppiert. Beim Import werden keine Tabellen angelegt, es sind lediglich INSERT-Statements vorhanden:
 
Die folgenden Dateien enhalten dann die eigentlichen Nutzdaten nach Ländern gruppiert. Beim Import werden keine Tabellen angelegt, es sind lediglich INSERT-Statements vorhanden:
Zeile 23: Zeile 32:
 
  LI.sql  Lichtenstein
 
  LI.sql  Lichtenstein
 
      
 
      
=== Schritt 3 ===
+
==== Schritt 3 ====
 
      
 
      
 
Abschließend sollten die Anweisungen in opengeod-end.sql in der Datenbank ausgeführt werden. Dabei werden die Beschreibungen zu den einzelnen Typen in die Tabelle geodb_type_names eingefügt und verschiedene Indizes erstellt.         
 
Abschließend sollten die Anweisungen in opengeod-end.sql in der Datenbank ausgeführt werden. Dabei werden die Beschreibungen zu den einzelnen Typen in die Tabelle geodb_type_names eingefügt und verschiedene Indizes erstellt.         
  
== Weitere Daten ==
+
=== Weitere Daten ===
 
Weitere Dateien enthalten zusätzliche Daten zum Import:
 
Weitere Dateien enthalten zusätzliche Daten zum Import:
  
Zeile 34: Zeile 43:
 
               (z.B. Höhenangaben, Kontinente, Daten mit Versionierung etc.)
 
               (z.B. Höhenangaben, Kontinente, Daten mit Versionierung etc.)
  
Wer für seine Zwecke eine Einordnung der Locations in eine Verwaltungshierarchie benötigt sollte zusätzlich die Dateien *hier.sql aus dem Unter-Verzeichnis dump importieren, die die Zuordnung der Locations zu den einzelnen Hierarchie-Ebenen übernimmt. Diese und erstellt die Tabelle geodb_hierarchies.
+
Wer für seine Zwecke eine Einordnung der Locations in eine Verwaltungshierarchie benötigt sollte zusätzlich die Dateien *hier.sql importieren, die die Zuordnung der Locations zu den einzelnen Hierarchie-Ebenen übernimmt. Dabei wird die Tabelle [[Geodb_hierarchies|geodb_hierarchies]] erstellt.
 +
 +
AThier.sql  Hierarchie-Daten für Österreich
 +
BEhier.sql  Hierarchie-Daten für Belgien
 +
CHhier.sql  Hierarchie-Daten für die Schweiz
 +
DEhier.sql  Hierarchie-Daten für Deutschland
 +
LIhier.sql  Hierarchie-Daten für Liechtenstein
 +
 
 +
== Einspielen eines fertigen Dumps ==
 +
 
 +
Fertige Dumps der Datenbank finden sich im Unterverzeichnis [http://fa-technik.adfc.de/code/opengeodb/dump dump]. Diese enthalten folgdende Daten:
 +
* Basisdaten (DE, AT, CH, LI, LU, BE)
 +
* Weitere Daten (extra + changes)
 +
* Hierarchie-Ebenen
 +
 
 +
Unter Linux kann man die Dump-Datei mit folgender Anweisung auf der Kommandozeile einspielen:
 +
zcat opengeodb-026.sql.gz | mysql --user=<username> --password=<password> <dbname>
 +
Die Angaben in den eckigen Klammern müssen natürlich durch die entsprechenden Werte ersetzt werden.
 +
[[Kategorie:Datenbank]]
 +
 
 +
== Dump enthält veraltetes MySQL-Statement ==
 +
 
 +
Der Dump auf http://fa-technik.adfc.de/code/opengeodb/ enthält noch "TYPE=InnoDB" in den create_table MySQL-Statements. Dies wird [http://dev.mysql.com/doc/refman/5.5/en/create-table.html seit MySQL 5.5 nicht mehr unterstützt].
 +
 
 +
Daraus resultiert ein Fehler beim einlesen in MySQL >= 5.5
 +
 
 +
Das Problem wird behoben, indem man im SQL-Dump "TYPE=InnoDB" durch "ENGINE=InnoDB" ersetzt.

Aktuelle Version vom 6. November 2012, 17:24 Uhr

Die zur Verfügung gestellten SQL-Daten werden per Skript aus den .tab-Dateien erzeugt.

Die in dieser Anleitung verwendeten SQL-Dateien mit den Daten sind unter http://fa-technik.adfc.de/code/opengeodb/ zu finden.

Dabei kann entweder ein fertiger Dump der Datenbank aus dem Unterverzeichnis dump eingespielt werden, oder man stellt sich seine eigene Datenbank nach individuellen Bedürfnissen zusammen.

Individuelle Auswahl der Daten

Um eine vollständige SQL-Datenbank mit den Basisdaten der OpenGeoDB zu erhalten sind drei Schritte notwendig:

Basisdaten

Schritt 1

Um die Datenbank-Struktur zu erstellen muss als erstes der in opengeodb-begin.sql enhaltene Struktur-Dump in die Datenbank importiert werden.

Beim Import werden folgende Tabellen angelegt:

geodb_locations
geodb_textdata
geodb_intdata
geodb_floatdata
geodb_coordinates
geodb_type_names
geodb_changelog

Hinweis: Der Dump erzeugt Tabellen im Format InnoDB, was die Angabe von Foreign Key Checks ermöglicht, aber auch die Import-Dauer der Daten drastisch erhöht. Allgemein steht InnoDB in dem Ruf um den Faktor 2-3 mal langsamer zu sein als MyISAM. Wer also auf Foreign Key Checks verzichten kann, sollte in Erwägung ziehen, das SQL entsprechend für MyISAM-Tabellen anzupassen. Im wesentlichen entfernt man dafür die check- und references-Anweisungen und stellt den TYPE für die Tabelle auf MyISAM.

Schritt 2

Die folgenden Dateien enhalten dann die eigentlichen Nutzdaten nach Ländern gruppiert. Beim Import werden keine Tabellen angelegt, es sind lediglich INSERT-Statements vorhanden:

AT.sql  Österreich
BE.sql  Belgien
CH.sql  Schweiz
DE.sql  Deutschland
LI.sql  Lichtenstein
    

Schritt 3

Abschließend sollten die Anweisungen in opengeod-end.sql in der Datenbank ausgeführt werden. Dabei werden die Beschreibungen zu den einzelnen Typen in die Tabelle geodb_type_names eingefügt und verschiedene Indizes erstellt.

Weitere Daten

Weitere Dateien enthalten zusätzliche Daten zum Import:

changes.sql  geänderte Datensätze
extra.sql    Zusatzinformationen 
             (z.B. Höhenangaben, Kontinente, Daten mit Versionierung etc.)

Wer für seine Zwecke eine Einordnung der Locations in eine Verwaltungshierarchie benötigt sollte zusätzlich die Dateien *hier.sql importieren, die die Zuordnung der Locations zu den einzelnen Hierarchie-Ebenen übernimmt. Dabei wird die Tabelle geodb_hierarchies erstellt.

AThier.sql   Hierarchie-Daten für Österreich
BEhier.sql   Hierarchie-Daten für Belgien
CHhier.sql   Hierarchie-Daten für die Schweiz
DEhier.sql   Hierarchie-Daten für Deutschland
LIhier.sql   Hierarchie-Daten für Liechtenstein

Einspielen eines fertigen Dumps

Fertige Dumps der Datenbank finden sich im Unterverzeichnis dump. Diese enthalten folgdende Daten:

  • Basisdaten (DE, AT, CH, LI, LU, BE)
  • Weitere Daten (extra + changes)
  • Hierarchie-Ebenen

Unter Linux kann man die Dump-Datei mit folgender Anweisung auf der Kommandozeile einspielen:

zcat opengeodb-026.sql.gz | mysql --user=<username> --password=<password> <dbname>

Die Angaben in den eckigen Klammern müssen natürlich durch die entsprechenden Werte ersetzt werden.

Dump enthält veraltetes MySQL-Statement

Der Dump auf http://fa-technik.adfc.de/code/opengeodb/ enthält noch "TYPE=InnoDB" in den create_table MySQL-Statements. Dies wird seit MySQL 5.5 nicht mehr unterstützt.

Daraus resultiert ein Fehler beim einlesen in MySQL >= 5.5

Das Problem wird behoben, indem man im SQL-Dump "TYPE=InnoDB" durch "ENGINE=InnoDB" ersetzt.