Dit is de opdracht pgloader die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
pglader - PostgreSQL-gegevenslader
KORTE INHOUD
plader [ ] [ ]...
plader [ ] BRONDOEL
PRODUCTBESCHRIJVING
ploader laadt gegevens uit verschillende bronnen in PostgreSQL. Het kan de gegevens transformeren
leest on the fly en dient onbewerkte SQL in voor en na het laden. Het gebruikt de COPY
PostgreSQL-protocol om de gegevens naar de server te streamen en fouten te beheren door een
een paar afwijzen.dat en afwijzen.log bestanden.
ploader werkt ofwel met behulp van opdrachten die uit bestanden worden gelezen:
ploader commando's.laden
of door argumenten en opties te gebruiken die allemaal op de opdrachtregel staan:
ploader BRON DOEL
ARGUMENTEN
De ploader-argumenten kunnen zoveel laadbestanden zijn als nodig is, of een paar verbindingen
tekenreeksen naar een specifiek invoerbestand.
BRON AANSLUITING STRING
De indeling van de bronverbindingsreeks is als volgt:
format:///absoluut/pad/naar/bestand.ext
format://./relatief/pad/naar/bestand.ext
Waar formaat een van zou kunnen zijn csv, vast, kopiëren, dbf, db3 or ixf.
db://gebruiker:pass@host:poort/dbnaam
Waar db van zou kunnen zijn sqlite, mysql or mssql.
Bij gebruik van een op bestanden gebaseerd bronformaat ondersteunt ploader ook het native ophalen van het bestand
vanaf een http-locatie en indien nodig een archief decomprimeren. In dat geval is het noodzakelijk
Om het gebruik --type optie om het verwachte formaat van het bestand op te geven. Zie de voorbeelden
hieronder.
Houd er ook rekening mee dat voor sommige bestandsindelingen enkele implementatiedetails moeten worden beschreven, zoals
te lezen kolommen en scheidingstekens en aanhalingstekens bij het laden vanuit csv.
Voor complexere laadscenario's moet u een volledig laadcommando schrijven
de syntaxis die verderop in dit document wordt beschreven.
DOEL AANSLUITING STRING
De indeling van de doelverbindingsreeks wordt verderop in dit document in detail beschreven, zie
Sectie Verbindingsreeks.
OPTIES
ONDERZOEK OPTIES
Gebruik deze opties als u meer wilt weten over het gebruik pglader, als die opties
zal veroorzaken pglader om geen gegevens te laden.
-h, --help
Toon samenvatting van commandogebruik en sluit af.
-V, --versie
Toon ploader versiestring en sluit af.
-E, --lijst-coderingen
Maak een lijst van bekende coderingen in deze versie van ploader.
-U, --upgrade-config
Parseer gegeven bestanden in de opdrachtregel als ploader.conf bestanden met de INI syntaxis
dat in gebruik was in ploader versies 2.x, en voert de nieuwe opdrachtsyntaxis uit voor
ploader op standaarduitvoer.
ALGEMEEN OPTIES
Die opties zijn bedoeld om te tweaken pglader gedrag bij het laden van gegevens.
-v, --uitgebreid
Wees breedsprakig.
-q, --stil
Wees stil.
-d, --debuggen
Toon informatieberichten op foutopsporingsniveau.
-D, --root-dir
Stel de hoofdwerkdirectory in (standaard ingesteld op "/tmp/ploader").
-L, --logbestand
Stel het logbestand van de ploader in (standaard ingesteld op "/tmp/ploader.log").
--log-min-berichten
Minimaal niveau van breedsprakigheid dat nodig is voor logbericht om het logbestand te bereiken. Een van de
kritiek, logboek, fout, waarschuwing, bericht, info of foutopsporing.
--client-min-berichten
Minimaal niveau van breedsprakigheid dat nodig is voor logberichten om de console te bereiken. Een van de
kritiek, logboek, fout, waarschuwing, bericht, info of foutopsporing.
-S, --samenvatting
Een bestandsnaam waarnaar de samenvattingsuitvoer moet worden gekopieerd. Wanneer relatief, is de bestandsnaam
uitgebreid tot *root-map*.
Het formaat van de bestandsnaam is standaard ingesteld op being menselijk leesbaar. Het is mogelijk om te hebben
de uitvoer in machinevriendelijke formaten zoals CSV, COPY (PostgreSQL's eigen COPY
formaat) of JSON door een bestandsnaam op te geven met de extensie resp. . Csv, .kopiëren or
.json.
-l , --load-lisp-bestand
Specificeer een lisp filet om te compileren en in de ploader-afbeelding te laden voordat u het
commando's, waarmee een extra transformatiefunctie kan worden gedefinieerd. Die functies moeten
gedefinieerd worden in de ploader.transformaties pakket. Deze optie kan verschijnen meer dan
eenmaal in de opdrachtregel.
--zelf-upgrade :
Specificeer een directory waar ploader-bronnen te vinden zijn, zodat een van de allereerste
dingen die het doet, is het dynamisch inladen (en compileren naar machinecode) van een ander
versie van zichzelf, meestal een nieuwere zoals een zeer recente git checkout.
COMMAND LINE WERKZAAMHEDEN
Die opties zijn bedoeld om te gebruiken bij het gebruik pglader alleen vanaf de opdrachtregel, in plaats daarvan
dan het gebruik van een opdrachtbestand en de rijke opdrachtclausules en parser. In eenvoudige gevallen kan het
veel gemakkelijker zijn om de te gebruiken BRON en DOEL rechtstreeks op de opdrachtregel en pas vervolgens het
laden met die opties:
· --met "keuze":
Staat instellingsopties vanaf de opdrachtregel toe. U kunt die optie zo vaak gebruiken als
jij wil. De optieargumenten moeten volgen op de MET clausule voor het brontype van het
BRON specificatie, zoals verderop in dit document beschreven.
· --set "guc_name=´waarde´"
Maakt het mogelijk PostgreSQL-configuratie in te stellen vanaf de opdrachtregel. Merk op dat de optie
parsing is hetzelfde als bij gebruik van de SET opdrachtclausule, in het bijzonder moet u
omsluit de guc-waarde met enkele aanhalingstekens.
· --veld "..."
Maakt het mogelijk om een bronvelddefinitie in te stellen. Velden worden verzameld in de aangegeven volgorde
de opdrachtregel. Het is mogelijk om ofwel een --veld optie per veld in de bron
-bestand, of om velddefinities te scheiden door een komma, zoals u zou doen in het HEBBEN
FIELDS clausule.
· --vorm "..."
Maakt het mogelijk om een specifieke castingregel in te stellen voor het laden van de gegevens.
· --type csv|vast|db3|ixf|sqlite|mysql|mssql
Maakt het mogelijk om het brontype te forceren, voor het geval dat de BRON ontleden is niet bevredigend.
· --codering
Stel de codering in van het bronbestand waaruit gegevens moeten worden geladen.
· --voordat
Parseer de gegeven bestandsnaam voor SQL-query's en voer ze eerder uit tegen de doeldatabase
het laden van de gegevens van de bron. De vragen worden door ploader zelf geparseerd: ze hebben
worden afgesloten met een puntkomma (;) en het bestand mag bevatten \i or \ir commando's om
omvatten een ander bestand.
· --na
Parseer de gegeven bestandsnaam voor SQL-query's en voer ze daarna uit tegen de doeldatabase
nadat de gegevens van de bron zijn geladen. De query's worden op dezelfde manier geparseerd als met
the --voordat optie, zie hierboven.
MEER DEBUG INFORMATIE
Om de maximale hoeveelheid foutopsporingsinformatie te krijgen, kunt u zowel de --uitgebreid en
--debuggen schakelt tegelijkertijd, wat hetzelfde is als zeggen --client-min-berichten
gegevens. Vervolgens tonen de logberichten de gegevens die worden verwerkt, in de gevallen waarin de
code heeft er expliciete ondersteuning voor.
GEBRUIK Voorbeelden
Bekijk de opdrachtregelopties en de versie van ploader:
ploader --help
ploader --versie
het laden vanaf a complex commando
Gebruik het commandobestand als het pgloader-commandoargument, pgloader zal dat bestand ontleden en
voer de daarin gevonden opdrachten uit:
ploader --verbose ./test/csv-districts.load
CSV
Laad gegevens uit een CSV-bestand in een reeds bestaande tabel in uw database:
ploader --type csv
--veld-id --veldveld
--met afkorting
--met "velden afgesloten met ´,´"
./test/data/matching-1.csv
postgres:///ploader?tablename=matching
In dat voorbeeld wordt het hele laden vanaf de opdrachtregel aangestuurd, waardoor de noodzaak voor
een opdracht volledig schrijven in de opdrachtsyntaxis van ploader. Omdat er echter geen commando is,
de benodigde extra informatie moet worden verstrekt op de opdrachtregel met behulp van de --type en
--veld en --met schakelaars.
Voor documentatie over de beschikbare syntaxis voor het --veld en --met schakelaars, alstublieft
raadpleeg de CSV-sectie verderop in de man-pagina.
Merk ook op dat de PostgreSQL URI het doel bevat tafel naam.
lezing vanaf STDIN
Op bestanden gebaseerde ploader-bronnen kunnen worden geladen vanuit de standaardinvoer, zoals hieronder
voorbeeld:
ploader --type csv
--veld "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--met "koptekst overslaan = 1"
--met "velden afgesloten met ´\t´"
-
postgresql:///ploader?districts_longlat
<test/data/2013_Gaz_113CDs_national.txt
Het streepje (-) karakter als bron wordt gebruikt standaard invoer, zoals gebruikelijk in Unix
opdrachtregels. Met deze techniek is het mogelijk om gecomprimeerde inhoud naar ploader te streamen,
met behulp van de Unix-pijp:
gunzip -c bron.gz | pgloader --type csv ... - pgsql:///target?foo
het laden vanaf CSV Beschikbaar brengt HTTP
Dezelfde opdracht als hierboven kan ook worden uitgevoerd als het CSV-bestand toevallig wordt gevonden op een
externe HTTP-locatie:
ploader --type csv
--veld "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--met "koptekst overslaan = 1"
--met "velden afgesloten met ´\t´"
http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt
postgresql:///ploader?districts_longlat
In dat geval moeten er wat meer opties worden gebruikt, omdat het bestand een kopregel van één regel bevat
(Meestal zijn dat kolomnamen, dit kan een copyrightmelding zijn). In dat geval ook wij
specificeer alle velden in één --veld optie argument.
Nogmaals, de PostgreSQL-doelverbindingsreeks moet de tafel naam optie en jij
moeten ervoor zorgen dat de doeltabel bestaat en past bij de gegevens. Hier is het SQL-commando
gebruikt in dat voorbeeld voor het geval je het zelf wilt proberen:
tabel districten_longlat maken
(
usps-tekst,
geoïde tekst,
en bigint,
een water bigint,
aland_sqmi dubbele precisie,
awater_sqmi dubbele precisie,
intptlat dubbele precisie,
intptlong dubbele precisie
);
Merk ook op dat dezelfde opdracht werkt tegen een gearchiveerde versie van dezelfde gegevens,
bv http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz.
Ten slotte is het belangrijk op te merken dat ploader eerst de inhoud van de HTTP-URL ophaalt
het naar een lokaal bestand en breid het archief vervolgens uit wanneer het als een bestand wordt herkend, en alleen dan
verwerkt het lokaal uitgevouwen bestand.
In sommige gevallen, omdat ploader geen directe ondersteuning heeft voor uw archiefformaat of
misschien omdat het uitbreiden van het archief niet haalbaar is in uw omgeving, wilt u dat misschien wel
stream de inhoud rechtstreeks vanaf de externe locatie naar PostgreSQL. Hier is hoe te doen
dat, met behulp van de oude, in de strijd geteste Unix Pipes-truc:
krullen http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz
| gunzip-c
| ploader --type csv
--veld "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--met "koptekst overslaan = 1"
--met "velden afgesloten met ´\t´"
-
postgresql:///ploader?districts_longlat
Nu zorgt het besturingssysteem voor de streaming en buffering tussen het netwerk en de
commando's en ploader zorgen voor het streamen van de gegevens naar PostgreSQL.
migreren vanaf SQLite
De volgende opdracht opent de SQLite-database en ontdekt de tabeldefinities
inclusief indexen en externe sleutels, migreer die definities terwijl gieten het gegevenstype
specificaties naar hun PostgreSQL-equivalent en migreer vervolgens de gegevens over:
aangemaaktb nieuwedb
ploader ./test/sqlite/sqlite.db postgresql:///newdb
migreren vanaf MySQL
Maak gewoon een database waar u de MySQL-gegevens en -definities kunt hosten en laat ploader het doen
de migratie voor u in een enkele opdrachtregel:
gemaaktb pagila
ploader mysql://user@localhost/sakila postgresql:///pagila
Ophalen an gearchiveerd DBF filet vanaf a HTTP vanop plaats
Het is mogelijk voor pgloader om een bestand van HTTP te downloaden, het uit het archief te halen en pas daarna te openen
het om het schema te ontdekken en laad vervolgens de gegevens:
aangemaaktb foo
ploader --type dbf http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/historiq2013.zip postgresql:///foo
Hier is het voor ploader niet mogelijk om te raden wat voor soort gegevensbron het krijgt, dus
het is noodzakelijk om de --type opdrachtregel schakelaar.
BATCHES EN OPNW GEDRAG
Om gegevens naar PostgreSQL te laden, gebruikt ploader de COPY streaming-protocol. Terwijl dit de
snellere manier om gegevens te laden, COPY heeft een belangrijk nadeel: zodra PostgreSQL een
fout met elk stukje gegevens dat ernaar wordt verzonden, wat het probleem ook is, de hele dataset is
afgewezen door PostgreSQL.
Om dat te omzeilen, knipt ploader de gegevens in batches van elk 25000 rijen, zodat wanneer
er doet zich een probleem voor dat alleen invloed heeft op zoveel rijen gegevens. Elke batch wordt in het geheugen bewaard
terwijl de COPY streaming gebeurt, om eventuele fouten te kunnen verwerken.
Wanneer PostgreSQL de hele batch afwijst, registreert ploader het foutbericht en isoleert vervolgens het
slechte rij(en) van de geaccepteerde rijen door de gegroepeerde rijen in kleinere batches opnieuw te proberen. Te doen
dat ploader de CONTEXT foutbericht van de mislukte COPY, als het bericht
bevat het regelnummer waar de fout in de batch is gevonden, zoals in het volgende
voorbeeld:
CONTEXT: KOPIEER fouten, regel 3, kolom b: "2006-13-11"
Met behulp van die informatie zal ploader alle rijen in de batch opnieuw laden vóór de foutieve
één, registreer de foutieve als afgekeurd en probeer vervolgens de rest van de batch in a te laden
enkele poging, die al dan niet andere foutieve gegevens kan bevatten.
Aan het einde van een lading met afgekeurde rijen vindt u twee bestanden in het root-dir
locatie, onder een map met dezelfde naam als de doeldatabase van uw installatie. De
bestandsnamen zijn de doeltabel en hun extensies zijn .dat voor de geweigerde gegevens en
.log voor het bestand met de volledige logboeken aan de clientzijde van PostgreSQL over de geweigerde gegevens.
De .dat bestand is geformatteerd in PostgreSQL de tekst COPY-indeling zoals gedocumenteerd in
http://www.postgresql.org/docs/9.2/static/sql-copy.html#AEN66609 .
A NOTITIE OVER ONS PRESTATIES
ploader is ontwikkeld met het oog op prestaties, om alles aan te kunnen
groeiende behoefte aan het laden van grote hoeveelheden gegevens in PostgreSQL.
De basisarchitectuur die het gebruikt, is het oude Unix-pijpmodel, waar een thread verantwoordelijk voor is
voor het laden van de gegevens (lezen van een CSV-bestand, opvragen van MySQL, enz.) en voorverwerkte vullingen
gegevens in een wachtrij. Een andere thread feeds uit de wachtrij, pas wat meer toe transformaties
naar de invoergegevens en stream het eindresultaat naar PostgreSQL met behulp van het COPY-protocol.
Wanneer een bestand wordt gegeven dat de PostgreSQL COPY commando weet hoe het moet worden geparseerd en of het bestand
geen foutieve gegevens bevat, dan zal ploader nooit zo snel zijn als alleen het gebruik van de
PostgreSQL COPY opdracht.
Merk op dat terwijl de COPY opdracht is beperkt tot het lezen van de standaardinvoer of
vanuit een lokaal bestand op het bestandssysteem van de server, het opdrachtregelprogramma psql implementeert een
\kopiëren commando dat weet hoe een bestand lokaal naar de client moet worden gestreamd via het netwerk en
naar de PostgreSQL-server, met hetzelfde protocol als ploader gebruikt.
BRON FORMATS
ploader ondersteunt de volgende invoerformaten:
· csv, dat ook tsv en andere veelvoorkomende varianten omvat waar u de
afscheider en citeren regels en hoe ontsnappen the citaten zich;
· bestand met vaste kolommen, waarbij ploader flexibel genoeg is om met bronbestanden om te gaan
ontbrekende kolommen (haveloos vast lengte kolom bestanden bestaan);
· PostgreSLQ COPY-geformatteerde bestanden, volgens de COPY TEXT-documentatie van PostgreSQL,
zoals de weigeringsbestanden die zijn opgesteld door ploader;
· dbase-bestanden bekend als db3- of dbf-bestand;
· bestanden in ixf-indeling, waarbij ixf een binaire opslagindeling van IBM is;
· sqlite-databases met volledig geautomatiseerde ontdekking van het schema en geavanceerde cast-regels;
· mysql-databases met volledig geautomatiseerde ontdekking van het schema en geavanceerde cast-regels;
· MS SQL-databases met volledig geautomatiseerde detectie van het schema en geavanceerde cast-regels.
PGLOADER COMMANDO'S SYNTAXIS
ploader implementeert een domeinspecifieke taal waarmee het laden van complexe gegevens kan worden ingesteld
scripts die berekende kolommen verwerken en de invoergegevens on-the-fly opschonen. Voor meer
complexe scenario's voor het laden van gegevens, moet u de syntaxis van DSL leren. Zijn
bedoeld om DBA bekend voor te komen door zich te laten inspireren door SQL waar het logisch is, wat niet zo is
zo veel tenslotte.
De ploader-commando's volgen dezelfde globale grammaticaregels. Elk van hen zou kunnen steunen
slechts een subset van de algemene opties en bieden specifieke opties.
LADEN
VAN [ VELDEN HEBBEN ]
NAAR BINNEN [ DOELKOLOMMEN ]
[ MET ]
[ SET ]
[ VOOR LADEN [ DOEN | UITVOEREN ] ... ]
[ NA LADEN [ DOEN | UITVOEREN ] ... ]
;
De belangrijkste clausules zijn de LOAD, NU, IN en MET clausules die elke opdracht implementeert.
Een commando implementeert vervolgens het SET opdracht, of een aantal specifieke clausules zoals de CAST
clausule.
GEMEENSCHAPPELIJKE CLAUSULES
Sommige clausules zijn gemeenschappelijk voor alle opdrachten:
· NU
De NU clausule specificeert waar de gegevens vandaan moeten worden gelezen, en elke opdracht introduceert zijn
eigen variant van bronnen. Bijvoorbeeld de CSV bron ondersteunt inline, stdin, een
bestandsnaam, een bestandsnaam tussen aanhalingstekens en een BESTANDSNAAM BIJ ELKAAR PASSEN clausule (zie hierboven); terwijl de
MySQL source ondersteunt alleen een MySQL-database-URI-specificatie.
In alle gevallen is de NU clausule kan zijn waarde lezen van een omgevingsvariabele
bij gebruik van het formulier GETENV ´varnaam´.
· IN
De PostgreSQL-verbindings-URI moet de naam bevatten van de doeltabel waarin moet worden geladen
de gegevens in. Die tabel moet al zijn gemaakt in PostgreSQL en de naam
kan schema gekwalificeerd zijn.
De IN De URI van de doeldatabaseverbinding kan worden ontleed aan de hand van de waarde van een omgeving
variabele bij gebruik van het formulier GETENV ´varnaam´.
Dan IN optie ondersteunt ook een optionele door komma's gescheiden lijst met doelkolommen,
die ofwel de naam van een ingang zijn veld- of de door witruimte gescheiden lijst van de
doelkolomnaam, het PostgreSQL-gegevenstype en een GEBRUIK MAKEND VAN expressie.
De GEBRUIK MAKEND VAN expressie kan elke geldige Common Lisp-vorm zijn en wordt gelezen met de
huidige pakket ingesteld op ploader.transformaties, zodat u functies kunt gebruiken die zijn gedefinieerd in
dat pakket, zoals functies die dynamisch worden geladen met het --laden opdrachtregel
parameter.
Elke GEBRUIK MAKEND VAN expression wordt tijdens runtime gecompileerd naar native code.
Met deze functie kan ploader een willekeurig aantal velden in een CSV-bestand laden in een
mogelijk ander aantal kolommen in de database, daarvoor aangepaste code gebruiken
projectie.
· MET
Reeks opties om toe te passen op de opdracht, met behulp van een globale syntaxis van:
· sleutel = waarde
· . optie
· do niet . optie
Zie elke specifieke opdracht voor details.
· SET
Met deze clausule kunnen sessieparameters worden opgegeven die moeten worden ingesteld voor alle geopende sessies
door ploader. Het verwacht een lijst met de parameternaam, het gelijkteken en vervolgens het
enkele aanhalingstekens als een door komma's gescheiden lijst.
De namen en waarden van de parameters worden niet gevalideerd door ploader, ze worden gegeven
zoals het is naar PostgreSQL.
· VOOR LOAD DO
U kunt SQL-query's uitvoeren op de database voordat u de gegevens uit het CSV
bestand. De meest voorkomende SQL-query's zijn CREATE TAFEL IF NIET BESTAAT zodat de gegevens kunnen zijn
geladen.
Elke opdracht moet zijn dollar genoteerd: het moet beginnen en eindigen met een dubbel dollarteken,
$$. Zoekopdrachten in dollars worden vervolgens door komma's gescheiden. Er wordt geen extra interpunctie verwacht
na de laatste SQL-query.
· VOOR LOAD UITVOEREN
Zelfde gedrag als in de VOOR LOAD DO clausule. Hiermee kunt u de SQL-query's lezen
uit een SQL-bestand. Implementeert ondersteuning voor PostgreSQL dollarquoting en de \i en \ir
omvatten faciliteiten zoals in psql batchmodus (waar ze hetzelfde zijn).
· NA LOAD DO
Hetzelfde formaat als VOOR LOAD DO, zijn de in dollars genoteerde zoekopdrachten in die sectie
uitgevoerd zodra de belasting is voltooid. Dat is het juiste moment om indexen en
beperkingen of schakel triggers opnieuw in.
· NA LOAD UITVOEREN
Zelfde gedrag als in de NA LOAD DO clausule. Hiermee kunt u de SQL-query's lezen van
een SQL-bestand. Implementeert ondersteuning voor PostgreSQL dollarquoting en de \i en \ir
omvatten faciliteiten zoals in psql batchmodus (waar ze hetzelfde zijn).
Aansluiting Draad
De parameter wordt verwacht gegeven te worden als a Aansluiting URI zoals gedocumenteerd
in de PostgreSQL-documentatie op
http://www.postgresql.org/docs/9.3/static/libpq-connect.html#LIBPQ-VERBINDING.
postgresql://[gebruiker[:wachtwoord]@][netloc][:poort][/dbname][?option=waarde&...]
Waar:
· gebruiker
Kan elk teken bevatten, inclusief dubbele punt (:) die vervolgens moet worden verdubbeld (::) en
op teken (@) die vervolgens moet worden verdubbeld (@@).
Wanneer weggelaten, de gebruiker naam is standaard ingesteld op de waarde van de PGUSER omgevingsvariabele,
en als het niet is ingesteld, de waarde van de GEBRUIKER variabele omgeving.
· wachtwoord
Kan elk teken bevatten, inclusief het apenstaartje (@) die vervolgens moet worden verdubbeld (@@).
Om het wachtwoord leeg te laten, wanneer de gebruiker naam eindigt op apenstaartje, dan moet je wel
gebruik de syntax user:@.
Wanneer weggelaten, de wachtwoord standaard ingesteld op de waarde van de PGPASWOORD omgeving houden
variabele als deze is ingesteld, anders wordt het wachtwoord niet ingesteld.
· netloc
Kan een hostnaam in gestippelde notatie zijn, of een ipv4, of een Unix-domeinsocket
pad. Leeg is de standaard netwerklocatie, onder een systeem dat voorziet unix domein
stopcontact die methode heeft de voorkeur, anders de netloc standaard op localhost.
Het is mogelijk om de unix domein stopcontact pad met behulp van de syntaxis
unix:/pad/naar/waar/de/socket/bestand/is, dus om een niet-standaard socketpad te forceren en een
niet-standaardpoort, zou u hebben:
postgresql://unix:/ tmp:54321/dbnaam
De netloc standaard ingesteld op de waarde van de PGHOST omgevingsvariabele en als deze niet is ingesteld,
naar ofwel de standaard unix socketpad bij gebruik op een Unix-systeem, en localhost
anders.
· dbnaam
Moet een juiste identificatie zijn (letter gevolgd door een combinatie van letters, cijfers en de
leestekens komma (,), streepje (-) en onderstrepingsteken (_).
Wanneer weggelaten, de dbnaam standaard ingesteld op de waarde van de omgevingsvariabele PGDATABASE,
en als dat niet is ingesteld, naar de gebruiker waarde zoals hierboven bepaald.
· opties
De optionele parameters moeten bij het formulier worden geleverd naam = waarde, en je mag gebruiken
verschillende parameters door ze te scheiden met een ampersand (&) karakter.
Slechts enkele opties worden hier ondersteund, tafel naam (die kan worden gekwalificeerd met een
schema naam) SSL-modus, gastheer, port, dbnaam, gebruiker en wachtwoord.
De SSL-modus parameterwaarden kunnen er een zijn 'disable', toelaten, de voorkeur geven or vereisen.
Om redenen van achterwaartse compatibiliteit is het mogelijk om het tafel naam optie
rechtstreeks, zonder de tabelnaam= delen.
De opties overschrijven de belangrijkste URI-componenten wanneer beide worden gegeven, en met behulp van de
Percentage gecodeerde optieparameters staan het gebruik van wachtwoorden toe die beginnen met een dubbele punt en
het omzeilen van de parseringsbeperkingen van andere URI-componenten.
Normaal Uitdrukkingen
Verschillende clausules die hieronder worden vermeld, accepteren deze regelmatig uitdrukkingen met GMT
invoerregels:
· Een reguliere expressie begint met een tildeteken (~),
· wordt gevolgd door een openingsteken,
· dan is elk karakter toegestaan en wordt het beschouwd als onderdeel van de reguliere expressie, behalve
voor het slotbord,
· dan wordt een sluitingsbord verwacht.
Het openings- en sluitingsteken zijn per paar toegestaan, hier is de volledige lijst met toegestane tekens
scheidingstekens:
~//
~[]
~{}
~()
~<>
~""
~´´
~||
~##
Kies de set scheidingstekens die niet botsen met de regelmatig uitdrukking je probeert het
invoer. Als uw uitdrukking zodanig is dat geen van de oplossingen u toestaat om het in te voeren, de
plaatsen waar dergelijke uitdrukkingen zijn toegestaan, moeten een lijst met uitdrukkingen mogelijk maken.
Heb je vragen? Stel ze hier.
Elke opdracht kan opmerkingen bevatten, volgens deze invoerregels:
· de -- scheidingsteken begint een opmerking die eindigt met het einde van de huidige regel,
· de scheidingstekens /* en */ respectievelijk beginnen en eindigen een opmerking, die te vinden is in
het midden van een opdracht of over meerdere regels.
Elke plaats waar u een witte ruimte zal ook een opmerking accepteren.
Partij gedrag opties
Alle ploader-commando's hebben ondersteuning voor een MET clausule die het mogelijk maakt om opties te specificeren.
Sommige opties zijn generiek en worden door alle commando's geaccepteerd, zoals de partij gedrag
opties, en sommige opties zijn specifiek voor een soort gegevensbron, zoals de CSV overspringen hoofd
optie.
De opties voor globaal batchgedrag zijn:
· partij rijen
Neemt een numerieke waarde als argument, gebruikt als het maximum aantal toegestane rijen in a
partij. De standaardwaarde is 25 000 en kan worden gewijzigd om betere prestaties te proberen
kenmerken of om het geheugengebruik van ploader te regelen;
· partij lengte van de duwkabel
Neemt een geheugeneenheid als argument, zoals 20 MB, de standaardwaarde. Geaccepteerd
vermenigvuldigers zijn kB, MB, GB, TB en PB. De zaak is belangrijk om niet in de war te raken
over bits versus bytes, we hebben het hier alleen over bytes.
· partij samenloop
Neemt een numerieke waarde als argument, is standaard ingesteld op 10. Dat is het aantal batches dat
ploader maakt het mogelijk om geheugen in te bouwen, zelfs als dat maar een enkele batch tegelijk zou kunnen
worden verzonden naar PostgreSQL.
Het ondersteunen van meer dan één batch die tegelijk wordt verzonden, staat op de TODO-lijst van
ploader, maar is nog niet geïmplementeerd. Deze optie gaat over het regelen van het geheugen
behoeften van ploader als een wisselwerking met de uitvoeringskenmerken, en niet over
parallelle activiteit van ploader.
Andere opties zijn specifiek voor elke invoerbron. Raadpleeg de specifieke delen van de
documentatie voor hun lijst en dekking.
Een batch wordt dan gesloten zodra ofwel de partij rijen of de partij lengte van de duwkabel drempel is
gekruist, wat het eerst komt. In gevallen waarin een batch moet worden gesloten vanwege de
partij lengte van de duwkabel instelling, een debug level log bericht wordt afgedrukt met hoeveel rijen er wel in pasten
extra groot partij.
LOAD CSV
Dit commando instrueert ploader om gegevens te laden van een CSV bestand. Hier is een voorbeeld:
LAAD CSV
VAN ´GeoLiteCity-Blocks.csv´ MET ENCODER iso-646-us
VELDEN HEBBEN
(
startIpNum, endIpNum, locId
)
IN postgresql://user@localhost:54393/dbname?geolite.blocks
DOELKOLOMMEN
(
iprange ip4r met (ip-range startIpNum endIpNum),
plaatsId
)
MET afkappen,
koptekst overslaan = 2,
velden optioneel omsloten door ´"´,
velden ontsnapt door backslash-quote,
velden eindigend op ´\t´
SET work_mem naar ´32 MB´, maintenance_work_mem naar ´64 MB´;
De csv format-opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam waar de gegevens vandaan moeten worden geladen. Accepteert een CODERING keuze. Gebruik de
--lijst-coderingen optie om te weten welke coderingsnamen worden ondersteund.
De bestandsnaam kan tussen enkele aanhalingstekens staan en kan een van de volgende zijn
speciale waarden:
· inline
De gegevens worden gevonden na het einde van de geparseerde opdrachten. Elk aantal lege regels
tussen het einde van de opdrachten en het begin van de gegevens wordt geaccepteerd.
· stdin
Leest de gegevens uit de standaard invoerstroom.
· BESTANDSNAMEN BIJ ELKAAR PASSEN
Het geheel matching clausule moet de volgende regel volgen:
[ ALLE BESTANDSNAMEN | [EERSTE] BESTANDSNAAM]
OVEREENKOMENDE regexp
[ IN DIRECTORY ´...´ ]
De matching clausule van toepassing gegeven regelmatig uitdrukking (zie hierboven voor de exacte syntaxis, verschillende
opties kunnen hier worden gebruikt) tot bestandsnamen. Het is dan mogelijk om gegevens te laden van alleen de
eerste wedstrijd van allemaal.
De optionele IN DIRECTORY clausule maakt het mogelijk om te specificeren in welke map moet worden gelopen om het
gegevensbestanden, en kan relatief zijn ten opzichte van waar het opdrachtbestand wordt gelezen, of
absoluut. De opgegeven map moet bestaan.
De NU optie ondersteunt ook een optionele door komma's gescheiden lijst van veld- namen beschrijven
wat wordt er verwacht in de CSV gegevensbestand, optioneel geïntroduceerd door de clausule HEBBEN FIELDS.
Elke veldnaam kan slechts één naam zijn of een naam die volgt op een specifieke lezer
opties voor dat veld, tussen vierkante haken en door komma's gescheiden. Ondersteund
opties voor lezers per veld zijn:
· beëindigd by
Zie de beschrijving van veld- beëindigd by hieronder.
De verwerking van deze optie is momenteel niet geïmplementeerd.
· gegevens formaat
Wanneer het veld wordt verwacht van het datumtype, dan kunt u met deze optie de
datumnotatie die in het bestand wordt gebruikt.
Tekenreeks voor datumnotatie zijn sjabloontekenreeksen die zijn gemodelleerd tegen de PostgreSQL naar_char
ondersteuning voor sjabloontekenreeksen, beperkt tot de volgende patronen:
· JJJJ, JJJ, JJ voor het jaargedeelte
· MM voor het numerieke maandgedeelte
· DD voor het numerieke dagdeel
· HH, HH12, HH24 voor het uurdeel
· ben, ben, ben, ben
· uur, uur, uur, uur
· MI voor het minutengedeelte
· SS voor het tweede gedeelte
· MS voor het millisecondengedeelte (4 cijfers)
· VS voor het microsecondengedeelte (6 cijfers)
· ongeparseerde leestekens: - . * # @ T / \ en spatie
Hier is een voorbeeld van een gegevens formaat specificatie:
kolomnaam [datumnotatie ´JJJJ-MM-DD UH24-MI-SS.US´]
· nul if
Deze optie neemt een argument dat ofwel het trefwoord is blanks of dubbel geciteerd
string.
. blanks wordt gebruikt en de gelezen veldwaarde bevat alleen spaties,
dan wordt het automatisch geconverteerd naar een SQL NULL waarde.
Wanneer een string met dubbele aanhalingstekens wordt gebruikt en die string wordt gelezen als de veldwaarde, dan
de veldwaarde wordt automatisch geconverteerd naar een SQL NULL waarde.
· trimmen zowel witte ruimte, trimmen links witte ruimte, trimmen rechts witte ruimte
Met deze optie kunt u witruimten in de gelezen gegevens inkorten, hetzij aan beide zijden van het
data, of alleen de witruimtetekens die links van de streep staan, of alleen
die aan de rechterkant van de string.
· MET
Bij het laden van een CSV bestand, worden de volgende opties ondersteund:
· afkappen
Wanneer deze optie wordt vermeld, geeft ploader een AFKNOPEN opdracht tegen de PostgreSQL
doeltabel voordat u het gegevensbestand leest.
· laten vallen indexen
Wanneer deze optie wordt weergegeven, geeft ploader problemen DROP INDEX bevelen tegen alle
indexen gedefinieerd op de doeltabel voordat de gegevens worden gekopieerd CREATE INDEX
commando's zodra de COPY is klaar.
Om de best mogelijke prestaties te krijgen, worden alle indexen gemaakt in
parallel en wanneer klaar, worden de primaire sleutels opnieuw opgebouwd uit de unieke indexen
gemaakt. Dit proces in twee stappen maakt het mogelijk om de primaire sleutelindex parallel aan te maken
de andere indexen, aangezien alleen de ALTER TAFEL commando heeft een toegang exclusief slot on
de doeltafel.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· overspringen hoofd
Neemt een numerieke waarde als argument. Instrueer ploader om zoveel regels over te slaan bij het
begin van het invoerbestand.
· csv hoofd
Gebruik de eerste regel die daarna wordt gelezen overspringen hoofd als de lijst met te vinden csv-veldnamen
in het CSV-bestand, met dezelfde CSV-parameters als voor de CSV-gegevens.
· trimmen niet geciteerd blanks
Bij het lezen van niet-aangehaalde waarden in de CSV bestand, verwijder de lege plekken tussen de
scheidingsteken en de waarde. Dat gedrag is de standaard.
· houden niet geciteerd blanks
Bij het lezen van niet-aangehaalde waarden in de CSV bestand, bewaar de lege plekken tussen de
scheidingsteken en de waarde.
· velden naar keuze ingesloten by
Neemt een enkel teken als argument, dat tussen enkele aanhalingstekens moet staan, en
kan worden gegeven als het afdrukbare teken zelf, de speciale waarde \t om a aan te duiden
tabelleringsteken, of 0x vervolgens een hexadecimale waarde gelezen als de ASCII-code voor de
karakter.
Dit karakter wordt gebruikt als het aanhalingsteken in de CSV bestand, en is standaard ingesteld op
dubbele aanhalingstekens.
· velden niet ingesloten
Standaard gebruikt ploader het dubbele aanhalingsteken als het omsluitende teken.
Als u een CSV-bestand hebt waarin velden niet zijn ingesloten en dubbele aanhalingstekens worden gebruikt als een
verwacht gewoon karakter, gebruik dan de optie velden niet ingesloten voor de CSV
parser om die waarden te accepteren.
· velden ontsnapt by
Neemt ofwel de speciale waarde backslash-citaat or dubbele aanhalingstekens, of een ondersteunde waarde
Door de velden beëindigd by optie (zie hieronder). Deze waarde wordt gebruikt om te herkennen
ontsnapte veldscheidingstekens wanneer ze in de gegevensvelden zelf te vinden zijn.
Standaard ingesteld op dubbele aanhalingstekens.
· csv ontsnappen mode
Neemt ofwel de speciale waarde citeren (de standaard) of volgend en staat de CSV toe
parser om alleen een escaped-veldscheidingsteken of een willekeurig teken (inclusief CSV
gegevens) bij gebruik van de volgend waarde.
· velden beëindigd by
Neemt een enkel teken als argument, dat tussen enkele aanhalingstekens moet staan, en
kan worden gegeven als het afdrukbare teken zelf, de speciale waarde \t om a aan te duiden
tabelleringsteken, of 0x vervolgens een hexadecimale waarde gelezen als de ASCII-code voor de
karakter.
Dit karakter wordt gebruikt als de veld- afscheider bij het lezen van de CSV data.
· lijnen beëindigd by
Neemt een enkel teken als argument, dat tussen enkele aanhalingstekens moet staan, en
kan worden gegeven als het afdrukbare teken zelf, de speciale waarde \t om a aan te duiden
tabelleringsteken, of 0x vervolgens een hexadecimale waarde gelezen als de ASCII-code voor de
karakter.
Dit karakter wordt gebruikt om te herkennen einde van de lijn toestand bij het lezen van de CSV data.
LOAD FIXED COLS
Dit commando instrueert ploader om gegevens te laden uit een tekstbestand met gerangschikte kolommen
een vast lengte van de duwkabel manier. Hier is een voorbeeld:
BELASTING VAST
VAN inline
(
een van 0 voor 10,
b van 10 voor 8,
c van 18 voor 8,
d van 26 voor 17 [null als spaties, witruimte rechts afsnijden]
)
IN postgresql:///ploader? opgelost
(
een, b,
c tijd met behulp van (tijd-zonder-scheidingsteken c),
d
)
MET afkappen
SET client_encoding op ´latin1´,
work_mem naar ´14MB´,
standard_conforming_strings naar ´on´
VOOR HET LADEN DOEN
$$ drop table indien aanwezig vast; $$,
$$ maak tabel vast (
een geheel getal,
b datum,
tijd,
d tekst
);
$$;
01234567892008052011431250eerste regel
01234562008052115182300links blanco gevoerd
12345678902008052208231560een andere regel
2345609872014092914371500
2345678902014092914371520
De vast format-opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam waar de gegevens vandaan moeten worden geladen. Accepteert een CODERING keuze. Gebruik de
--lijst-coderingen optie om te weten welke coderingsnamen worden ondersteund.
De bestandsnaam kan tussen enkele aanhalingstekens staan en kan een van de volgende zijn
speciale waarden:
· inline
De gegevens worden gevonden na het einde van de geparseerde opdrachten. Elk aantal lege regels
tussen het einde van de opdrachten en het begin van de gegevens wordt geaccepteerd.
· stdin
Leest de gegevens uit de standaard invoerstroom.
De NU optie ondersteunt ook een optionele door komma's gescheiden lijst van veld- namen beschrijven
wat wordt er verwacht in de FIXED data bestand.
Elke veldnaam is samengesteld uit de veldnaam gevolgd door specifieke leesopties
dat veld. Ondersteunde lezeropties per veld zijn de volgende, waar alleen begin en
lengte nodig.
· begin
Positie in de regel waar moet worden begonnen met het lezen van de waarde van dat veld. Kan worden ingevoerd met
decimale cijfers of 0x vervolgens hexadecimale cijfers.
· lengte
Hoeveel bytes moeten worden gelezen van het begin positie om de waarde van dat veld te lezen. Zelfde formaat
as begin.
Die optionele parameters moeten tussen vierkante haken staan en door komma's worden gescheiden:
· beëindigd by
Zie de beschrijving van veld- beëindigd by hieronder.
De verwerking van deze optie is momenteel niet geïmplementeerd.
· gegevens formaat
Wanneer het veld wordt verwacht van het datumtype, dan kunt u met deze optie de
datumnotatie die in het bestand wordt gebruikt.
Tekenreeks voor datumnotatie zijn sjabloontekenreeksen die zijn gemodelleerd tegen de PostgreSQL naar_char
ondersteuning voor sjabloontekenreeksen, beperkt tot de volgende patronen:
· JJJJ, JJJ, JJ voor het jaargedeelte
· MM voor het numerieke maandgedeelte
· DD voor het numerieke dagdeel
· HH, HH12, HH24 voor het uurdeel
· ben, ben, ben, ben
· uur, uur, uur, uur
· MI voor het minutengedeelte
· SS voor het tweede gedeelte
· MS voor het millisecondengedeelte (4 cijfers)
· VS voor het microsecondengedeelte (6 cijfers)
· ongeparseerde leestekens: - . * # @ T / \ en spatie
Hier is een voorbeeld van een gegevens formaat specificatie:
kolomnaam [datumnotatie ´JJJJ-MM-DD UH24-MI-SS.US´]
· nul if
Deze optie neemt een argument dat ofwel het trefwoord is blanks of dubbel geciteerd
string.
. blanks wordt gebruikt en de gelezen veldwaarde bevat alleen spaties,
dan wordt het automatisch geconverteerd naar een SQL NULL waarde.
Wanneer een string met dubbele aanhalingstekens wordt gebruikt en die string wordt gelezen als de veldwaarde, dan
de veldwaarde wordt automatisch geconverteerd naar een SQL NULL waarde.
· trimmen zowel witte ruimte, trimmen links witte ruimte, trimmen rechts witte ruimte
Met deze optie kunt u witruimten in de gelezen gegevens inkorten, hetzij aan beide zijden van het
data, of alleen de witruimtetekens die links van de streep staan, of alleen
die aan de rechterkant van de string.
· MET
Bij het laden van een FIXED bestand, worden de volgende opties ondersteund:
· afkappen
Wanneer deze optie wordt vermeld, geeft ploader een AFKNOPEN opdracht tegen de PostgreSQL
doeltabel voordat u het gegevensbestand leest.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· overspringen hoofd
Neemt een numerieke waarde als argument. Instrueer ploader om zoveel regels over te slaan bij het
begin van het invoerbestand.
LOAD COPY GEFORMATTEERD FILES
Dit commando instrueert ploader om te laden vanuit een bestand dat COPY TEXT-gegevens bevat als
beschreven in de PostgreSQL-documentatie. Hier is een voorbeeld:
LAAD KOPIE
VAN kopie://./data/track.copy
(
trackid, nummer, album, media, genre, componist,
milliseconden, bytes, eenheidsprijs
)
IN postgresql:///ploader?track_full
MET afkappen
SET client_encoding op ´latin1´,
work_mem naar ´14MB´,
standard_conforming_strings naar ´on´
VOOR HET LADEN DOEN
$$ drop table indien aanwezig track_full; $$,
$$ maak tabel track_full (
trackid bigserieel,
track tekst,
albumtekst,
mediatekst,
genretekst,
componist tekst,
milliseconden bigint,
bytes grootint,
eenheidsprijs numeriek
);
$$;
De COPY format-opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam waar de gegevens vandaan moeten worden geladen. Deze ondersteunen lokale bestanden, HTTP-URL's en zip
bestanden die een enkel dbf-bestand met dezelfde naam bevatten. Haal zo'n zip-bestand op uit een
HTTP-adres wordt uiteraard ondersteund.
· MET
Bij het laden van een COPY bestand, worden de volgende opties ondersteund:
· scheidingsteken
Neemt een enkel teken als argument, dat tussen enkele aanhalingstekens moet staan, en
kan worden gegeven als het afdrukbare teken zelf, de speciale waarde \t om a aan te duiden
tabelleringsteken, of 0x vervolgens een hexadecimale waarde gelezen als de ASCII-code voor de
karakter.
Dit karakter wordt gebruikt als de scheidingsteken bij het lezen van de gegevens, op dezelfde manier als de
PostgreSQL COPY optie.
· nul
Neemt een tekenreeks tussen aanhalingstekens als argument (aanhalingstekens kunnen dubbele of enkele aanhalingstekens zijn
aanhalingstekens) en gebruikt die string als de NULL weergave in de gegevens.
Dit is vergelijkbaar met de nul COPY optie in PostgreSQL.
· afkappen
Wanneer deze optie wordt vermeld, geeft ploader een AFKNOPEN opdracht tegen de PostgreSQL
doeltabel voordat u het gegevensbestand leest.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· overspringen hoofd
Neemt een numerieke waarde als argument. Instrueer ploader om zoveel regels over te slaan bij het
begin van het invoerbestand.
LOAD DBF
Dit commando instrueert ploader om gegevens te laden van een DBF bestand. Hier is een voorbeeld:
LAAD DBF
NU http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/reg2013.dbf
IN postgresql://user@localhost/dbname
MET afkappen, tabel maken;
De dbf format-opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam waar de gegevens vandaan moeten worden geladen. Deze ondersteunen lokale bestanden, HTTP-URL's en zip
bestanden die een enkel dbf-bestand met dezelfde naam bevatten. Haal zo'n zip-bestand op uit een
HTTP-adres wordt uiteraard ondersteund.
· MET
Bij het laden van een DBF bestand, worden de volgende opties ondersteund:
· afkappen
Wanneer deze optie wordt vermeld, geeft ploader een AFKNOPEN opdracht tegen de PostgreSQL
doeltabel voordat u het gegevensbestand leest.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· en je merk te creëren tafel
Wanneer deze optie wordt weergegeven, maakt ploader de tabel met behulp van de metagegevens die in
the DBF bestand, dat een lijst met velden met hun gegevenstype moet bevatten. Een standaard
datatypeconversie van DBF naar PostgreSQL is voltooid.
· tafel naam
Deze optie verwacht als waarde de mogelijk gekwalificeerde naam van de tabel die moet worden gemaakt.
LOAD IXF
Deze opdracht instrueert ploader om gegevens van een IBM te laden IXF bestand. Hier is een voorbeeld:
LAAD IXF
VAN data/nsitra.test1.ixf
IN postgresql:///ploader?nsitra.test1
MET afkappen, tabel maken
VOOR HET LADEN DOEN
$$ maak een schema als het niet bestaat nsitra; $$,
$$ drop table indien aanwezig nsitra.test1; $$;
De ixf format-opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam waar de gegevens vandaan moeten worden geladen. Deze ondersteunen lokale bestanden, HTTP-URL's en zip
bestanden die een enkel ixf-bestand met dezelfde naam bevatten. Haal zo'n zip-bestand op uit een
HTTP-adres wordt uiteraard ondersteund.
· MET
Bij het laden van een IXF bestand, worden de volgende opties ondersteund:
· afkappen
Wanneer deze optie wordt vermeld, geeft ploader een AFKNOPEN opdracht tegen de PostgreSQL
doeltabel voordat u het gegevensbestand leest.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· en je merk te creëren tafel
Wanneer deze optie wordt weergegeven, maakt ploader de tabel met behulp van de metagegevens die in
the DBF bestand, dat een lijst met velden met hun gegevenstype moet bevatten. Een standaard
datatypeconversie van DBF naar PostgreSQL is voltooid.
· tafel naam
Deze optie verwacht als waarde de mogelijk gekwalificeerde naam van de tabel die moet worden gemaakt.
LOAD ARCHIEF
Dit commando instrueert ploader om gegevens te laden van een of meer bestanden in een
archief. Momenteel is het enige ondersteunde archiefformaat Postcode, en het archief zou kunnen zijn
gedownload van een HTTP URL.
Hier is een voorbeeld:
ARCHIEF LADEN
VAN /Users/dim/Downloads/GeoLiteCity-latest.zip
IN postgresql:///ip4r
VOOR HET LADEN
DO $$ extensie maken als ip4r niet bestaat; $$,
$$ maak een schema als geolite niet bestaat; $$,
UITVOEREN ´geoliet.sql´
LAAD CSV
VAN BESTANDSNAAM OVEREENKOMSTIG ~/GeoLiteCity-Locatie.csv/
MET ENCODER iso-8859-1
(
plaatsID,
land,
regio null indien spaties,
stad null indien spaties,
postcode null indien blanco,
breedtegraad,
Lengtegraad,
metroCode null indien spaties,
areaCode null indien spaties
)
IN postgresql:///ip4r?geolite.location
(
locid,land,regio,stad,postcode,
locatiepunt met behulp van (formaat nul "(~a,~a)" lengtegraad breedtegraad),
metrocode, netnummer
)
MET koptekst overslaan = 2,
velden optioneel omsloten door ´"´,
velden ontsnapt door dubbele aanhalingstekens,
velden eindigend op ´,´
EN LAAD CSV
VAN BESTANDSNAAM OVEREENKOMSTIG ~/GeoLiteCity-Blocks.csv/
MET ENCODER iso-8859-1
(
startIpNum, endIpNum, locId
)
IN postgresql:///ip4r?geolite.blocks
(
iprange ip4r met (ip-range startIpNum endIpNum),
plaatsId
)
MET koptekst overslaan = 2,
velden optioneel omsloten door ´"´,
velden ontsnapt door dubbele aanhalingstekens,
velden eindigend op ´,´
EINDELIJK DOEN
$$ creëer index blocks_ip4r_idx op geolite.blocks met behulp van gist(iprange); $$;
De archief opdracht accepteert de volgende clausules en opties:
· NU
Bestandsnaam of HTTP-URI waar de gegevens vandaan moeten worden geladen. Wanneer een HTTP-URL wordt gegeven, wordt de link
bestand wordt lokaal gedownload voordat het wordt verwerkt.
Als het bestand een ritssluiting bestand, het opdrachtregelhulpprogramma unzip wordt gebruikt om het uit te breiden
archiveren naar bestanden in $ TMPDIRof / tmp if $ TMPDIR is uitgeschakeld of ingesteld op een niet-bestaand
directory.
Vervolgens worden de volgende opdrachten gebruikt vanuit de map op het hoogste niveau waar het archief
is uitgebreid.
· commando [ EN bevel ... ]
Een reeks opdrachten tegen de inhoud van het archief, alleen op dit moment
CSV,VAST en DBF opdrachten worden ondersteund.
Merk op dat commando's de clausule ondersteunen NU BESTANDSNAAM BIJ ELKAAR PASSEN waardoor de
ploader-opdracht om niet afhankelijk te zijn van de exacte namen van de archiefmappen.
Dezelfde clausule kan ook worden toegepast op verschillende bestanden met behulp van de spelling NU ALLE
BESTANDSNAMEN BIJ ELKAAR PASSEN en een reguliere expressie.
Het geheel matching clausule moet de volgende regel volgen:
VAN [ ALLE BESTANDSNAMEN | [ EERSTE ] BESTANDSNAAM ] OVEREENKOMSTIG
· TENSLOTTE DO
SQL-query's die moeten worden uitgevoerd zodra de gegevens zijn geladen, zoals CREATE INDEX.
LOAD MYSQL DATABASE
Dit commando instrueert ploader om gegevens van een databaseverbinding te laden. De enige
ondersteunde databasebron is momenteel MySQL, en ploader ondersteunt dynamisch converteren
het schema van de brondatabase en het bouwen van indexen.
Er wordt een standaardset castingregels gegeven en deze kunnen worden overbelast en toegevoegd door de
opdracht.
Hier is een voorbeeld:
DATABASE LADEN
VAN mysql:// Root@localhost/sakila
IN postgresql://localhost:54393/sakila
MET onder meer neerzetten, tabellen maken, indexen maken, reeksen resetten
SET maintenance_work_mem naar ´128MB´,
work_mem naar ´12MB´,
zoek_pad naar ´sakila´
CAST type datetime to timestamptz drop default drop not null met zero-dates-to-null,
type date drop not null drop default met zero-dates-to-null,
-- typ tinyint naar boolean met behulp van tinyint-naar-boolean,
typ jaar naar geheel getal
MATERIALISEER WEERGAVES film_list, staff_list
-- INCLUSIEF ALLEEN OVEREENKOMENDE TABELNAMEN ~/filmpje/, ´acteur´
-- EXCLUSIEF TABELNAMEN DIE OVEREENKOMEN MET ~
-- HET DECODEREN VAN TABELNAMEN DIE OVEREENKOMEN ~/geknoeid/, ~/codering/ ALS utf8
VOOR HET LADEN DOEN
$$ schema maken indien niet bestaat sakila; $$;
De databank opdracht accepteert de volgende clausules en opties:
· NU
Moet een verbindings-URL zijn die verwijst naar een MySQL-database. Op dit moment is alleen MySQL
ondersteund als een ploader-bron.
Als de verbindings-URI een tabelnaam bevat, wordt alleen deze tabel gemigreerd
MySQL naar PostgreSQL.
· MET
Bij het laden van een MySQL database, worden de volgende opties ondersteund, en de
schuld MET clausule is: geen afkappen, en je merk te creëren tafels, omvatten laten vallen, en je merk te creëren indexen, opnieuw in te stellen
sequenties, vreemd toetsen, kleine letter identifiers.
MET opties:
· omvatten laten vallen
Wanneer deze optie wordt vermeld, laat pgloader alle tabellen in de doel-PostgreSQL vallen
database waarvan de namen voorkomen in de SQLite-database. Met deze optie kunt u de
hetzelfde commando meerdere keren achter elkaar totdat je alle opties hebt uitgezocht, te beginnen
automatisch uit een schone omgeving. Houd er rekening mee dat CASCADE wordt gebruikt om te verzekeren
dat tabellen worden verwijderd, zelfs als er externe sleutels naar verwijzen. Dit is
precies wat omvatten laten vallen is bedoeld om te doen: alle doeltabellen laten vallen en opnieuw maken
Hen.
Grote zorg moet worden genomen bij het gebruik omvatten laten vallen, zoals het zal cascade naar allen
objecten die verwijzen naar de doeltabellen, mogelijk inclusief andere tabellen die dat niet zijn
wordt geladen vanuit de bron-DB.
· omvatten geen laten vallen
Als deze optie wordt vermeld, zal ploader er geen bevatten DROP verklaring bij het laden
de data.
· afkappen
Wanneer deze optie wordt weergegeven, geeft ploader het AFKNOPEN commando tegen elk
PostgreSQL-tabel net voordat er gegevens in worden geladen.
· geen afkappen
Wanneer deze optie wordt weergegeven, geeft ploader nr AFKNOPEN opdracht.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· en je merk te creëren tafels
Wanneer deze optie wordt weergegeven, maakt ploader de tabel met behulp van de metagegevens die in
the MySQL bestand, dat een lijst met velden met hun gegevenstype moet bevatten. Een standaard
datatypeconversie van DBF naar PostgreSQL is voltooid.
· en je merk te creëren geen tafels
Wanneer deze optie wordt weergegeven, slaat ploader het maken van een tabel over vóór het laden van gegevens,
doeltabellen moeten dan al bestaan.
· en je merk te creëren indexen
Als deze optie wordt weergegeven, haalt ploader de definities op van alle indexen die in
de MySQL-database en maak dezelfde set indexdefinities tegen de PostgreSQL
database.
· en je merk te creëren geen indexen
Wanneer deze optie wordt vermeld, slaat ploader het maken van indexen over.
· uniek maken index namen, behouden index namen
MySQL-indexnamen zijn uniek per tabel, terwijl in PostgreSQL-indexnamen dat moeten zijn
uniek per schema. De standaardinstelling voor ploader is om de indexnaam te wijzigen door middel van een voorvoegsel
het met idx_OID met de meeste OID is de interne numerieke identificatie van de tabel die de index is
gebouwd tegen.
In sommige gevallen, zoals wanneer de DDL volledig aan een raamwerk wordt overgelaten, kan het verstandig zijn
voor ploader om af te zien van het verwerken van unieke indexnamen, dat wordt bereikt door te gebruiken
the behouden index namen optie.
De standaardwaarde is naar uniek maken index namen.
Ook als je de optie gebruikt behouden index namen, MySQL primaire sleutelindexen genoemd
"PRIMARY" krijgen hun namen eenduidig. Als u dit niet doet, wordt de primaire voorkomen
sleutels die opnieuw moeten worden gemaakt in PostgreSQL waarbij de indexnamen uniek moeten zijn per
schema.
· vreemd toetsen
Als deze optie wordt vermeld, krijgt ploader de definities van alle externe sleutels
gevonden in de MySQL-database en maak dezelfde set externe sleuteldefinities tegen
de PostgreSQL-database.
· geen vreemd toetsen
Wanneer deze optie wordt weergegeven, slaat ploader het maken van externe sleutels over.
· opnieuw in te stellen sequenties
Wanneer deze optie wordt vermeld, aan het einde van het laden van gegevens en nadat de indexen hebben
allemaal zijn gemaakt, reset ploader alle gemaakte PostgreSQL-reeksen naar de huidige
maximale waarde van de kolom waaraan ze zijn gekoppeld.
De opties schema Slechts en gegevens Slechts hebben geen invloed op deze optie.
· opnieuw in te stellen geen sequenties
Als deze optie wordt weergegeven, slaat ploader het resetten van reeksen na het laden over.
De opties schema Slechts en gegevens Slechts hebben geen invloed op deze optie.
· kleine letter identifiers
Als deze optie wordt vermeld, converteert pgloader alle MySQL-identificaties (tabelnamen,
indexnamen, kolomnamen) naar kleine letter, behalve PostgreSQL gereserveerd zoekwoorden.
De PostgreSQL gereserveerd trefwoorden worden dynamisch bepaald door het systeem te gebruiken
functie pg_get_keywords().
· citeren identifiers
Wanneer deze optie wordt vermeld, citeert pgloader alle MySQL-identificaties zodat hun hoofdlettergebruik
wordt gerespecteerd. Merk op dat u dan hetzelfde moet doen in uw aanvraag
code vragen.
· schema Slechts
Wanneer deze optie wordt weergegeven, onthoudt plloader zich van het migreren van de gegevens. Let daar op
het schema in deze context omvat de indexen wanneer de optie en je merk te creëren indexen heeft
genoteerd.
· gegevens Slechts
Als deze optie wordt weergegeven, geeft ploader alleen het COPY verklaringen, zonder iets te doen
andere verwerking.
· CAST
De cast-clausule maakt het mogelijk om aangepaste castingregels te specificeren, ofwel om de standaard te overbelasten
casting regels of om ze te wijzigen met speciale gevallen.
Van een castingregel wordt verwacht dat deze een van de volgende vormen volgt:
type [ ... ] naar [ ... ]
kolom . [ ] naar ...
Het is mogelijk voor een gieten regeren om te matchen met een MySQL-gegevenstype of met een
gegeven kolom naam in een gegeven tafel naam. Die flexibiliteit maakt het mogelijk om te gaan met gevallen waarin
het type kleinint zou kunnen zijn gebruikt als een boolean in sommige gevallen maar als een kleintje in
anderen.
De gieten reglement op volgorde worden toegepast, voorkomt de eerste overeenkomst dat de volgende regels worden
toegepast en door de gebruiker gedefinieerde regels worden eerst geëvalueerd.
De ondersteunde bewakers zijn:
· wanneer verzuim waarde
De castingregel wordt alleen toegepast op MySQL-kolommen van het brontype die
gegeven waarde, wat een tekenreeks met enkel aanhalingstekens of dubbele aanhalingstekens moet zijn.
· wanneer typemod uitdrukking
De castingregel wordt alleen toegepast op MySQL-kolommen van het brontype die een
typemod waarde die overeenkomt met het gegeven typemod uitdrukking. De typemod is gescheiden in zijn
precisie en schaal componenten.
Voorbeeld van een cast-regel met a typemod bewaker:
typ char when (=precisie 1) om te char behoud typemod
Deze uitdrukking cast MySQL verkolen(1) kolom naar een PostgreSQL-kolom van het type verkolen(1) en
rekening houdend met het algemene geval teken(N) wordt door de standaard cast-regel geconverteerd naar een
PostgreSQL-type Varchar(N).
· with extra auto_increment
De castingregel wordt alleen toegepast op MySQL-kolommen met de extra kolom
auto_increment opties ingesteld, zodat het mogelijk is om bijv serie- dan
geheel getal.
Het standaard overeenkomstgedrag, wanneer deze optie niet is ingesteld, is om beide kolommen overeen te laten komen
met de extra definitie en zonder.
Dit betekent dat als u een castingregel wilt implementeren, die zich ook richt serie- or
geheel getal uit een kleintje definitie afhankelijk van de auto_increment extra beetje van
informatie van MySQL, dan moet u twee castingregels als volgt spellen:
typ smallint met extra auto_increment
naar serial drop typemod standaard behouden behouden niet null,
typ smallint
naar integer drop typemod keep default keep not null
De ondersteunde castingopties zijn:
· laten vallen verzuim, houden verzuim
Wanneer de optie laten vallen verzuim wordt weergegeven, verwijdert ploader elke bestaande standaardexpressie
in de MySQL-database voor kolommen van het brontype van de CREATE TAFEL verklaring
het genereert.
De spelling houden verzuim verhindert expliciet dat gedrag en kan eraan gewend zijn
overbelast de standaard castingregels.
· laten vallen niet nul, houden niet nul
Wanneer de optie laten vallen niet nul wordt vermeld, laat ploader alle bestaande vallen NIET NULL
beperking gekoppeld aan het gegeven MySQL-brongegevenstype wanneer het de tabellen maakt
in de PostgreSQL-database.
De spelling houden niet nul verhindert expliciet dat gedrag en kan eraan gewend zijn
overbelast de standaard castingregels.
· laten vallen typemod, houden typemod
Wanneer de optie laten vallen typemod wordt vermeld, laat ploader alle bestaande vallen typemod definitie
(bv precisie en schaal) van de datatype-definitie gevonden in de MySQL-kolommen van
het brontype bij het maken van de tabellen in de PostgreSQL-database.
De spelling houden typemod verhindert expliciet dat gedrag en kan eraan gewend zijn
overbelast de standaard castingregels.
· gebruik
Deze optie neemt als enig argument de naam van een functie die in de
ploader.transformaties Gemeenschappelijk Lisp-pakket. Zie hierboven voor details.
Het is mogelijk om een standaard cast-regel uit te breiden (zoals een die van toepassing is tegen ENUM
gegevenstype bijvoorbeeld) met a transformatie functie door het geheel weg te laten type dan:
delen van de castingregel, zoals in het volgende voorbeeld:
kolom opsommen.foo met behulp van lege-tekenreeks-naar-null
· MATERIALISEREN ZICHTEN
Met deze clausule kunt u aangepaste gegevensverwerking bij de gegevensbron implementeren door
het verstrekken van een view definitie waartegen ploader de gegevens zal opvragen. Het is niet
mogelijk om gewoon rekening te houden met vlakte SQL omdat we veel willen weten over het exacte
gegevenstypen van elke kolom die betrokken is bij de query-uitvoer.
Deze clausule verwacht een door komma's gescheiden lijst met weergavedefinities, waarbij elk een van beide is
de naam van een bestaande weergave in uw database of de volgende uitdrukking:
naam AS $$ sql vraag $$
De naam en sql vraag zal worden gebruikt in een CREATE BEKIJK verklaring aan het begin van
het laden van de gegevens en de resulterende weergave wordt vervolgens aan het einde van de gegevens neergezet
bezig met laden.
· MATERIALISEREN ALLE ZICHTEN
Zelfde gedrag als MATERIALISEREN ZICHTEN met behulp van de dynamische lijst met weergaven zoals geretourneerd door
MySQL in plaats van de gebruiker te vragen de lijst op te geven.
· INCLUSIEF TAFEL NAMEN BIJ ELKAAR PASSEN
Introduceer een door komma's gescheiden lijst met tabelnamen of regelmatig uitdrukking gebruikt om te beperken
de tabellen die naar een sublijst moeten worden gemigreerd.
Voorbeeld:
INCLUSIEF ALLEEN OVEREENKOMENDE TABELNAMEN ~/filmpje/, ´acteur´
· EXCLUSIEF TAFEL NAMEN BIJ ELKAAR PASSEN
Introduceer een door komma's gescheiden lijst met tabelnamen of regelmatig uitdrukking gebruikt om uit te sluiten
tabelnamen van de migratie. Dit filter is alleen van toepassing op het resultaat van de
INCLUSIEF filter.
UITSLUITEND TAFELNAMEN DIE OVEREENKOMEN ~
· DECODEREN TAFEL NAMEN BIJ ELKAAR PASSEN
Introduceer een door komma's gescheiden lijst met tabelnamen of regelmatig uitdrukkingen gebruikt om te forceren
de codering die moet worden gebruikt bij het verwerken van gegevens van MySQL. Als de gegevenscodering bij u bekend is
verschilt van het idee van MySQL erover, dit is de optie om te gebruiken.
DECODEREN VAN TABELNAMEN OVEREENKOMSTIG ~/geknoeid/, ~/codering/ ALS utf8
U kunt zoveel regels gebruiken als u nodig heeft, allemaal met mogelijk verschillende coderingen.
Beperkingen
De databank opdracht ondersteunt momenteel alleen de MySQL-brondatabase en heeft het volgende
beperkingen:
· Weergaven worden niet gemigreerd,
Ondersteunende weergaven vereisen mogelijk de implementatie van een volledige SQL-parser voor het MySQL-dialect
met een porteringsengine om de SQL te herschrijven tegen PostgreSQL, inclusief hernoemen
functies en het wijzigen van enkele constructies.
Hoewel het theoretisch niet onmogelijk is, houd je adem niet in.
· Triggers worden niet gemigreerd
De moeilijkheid hiervan is nog niet beoordeeld.
· ON UPDATE CURRENT_TIMESTAMP wordt momenteel niet gemigreerd
Het is eenvoudig genoeg om te implementeren, maar staat nog niet op de prioriteitenlijst.
· Van de geometrische datatypes zijn alleen de PUNT database is gedekt. De anderen
zou nu gemakkelijk genoeg moeten zijn om te implementeren, het is alleen nog niet klaar.
DEFAULT MySQL GIETEN REGLEMENT
Bij het migreren vanuit MySQL worden de volgende Casting-regels verstrekt:
Nummers:
· typ int met extra auto_increment naar serial when (< precisie 10)
· typ int met extra auto_increment naar bigserial when (<= 10 precisie)
· typ int naar int when (< precisie 10)
· typ int naar bigint when (<= 10 precisie)
· typ tinyint met extra auto_increment naar serial
· typ smallint met extra auto_increment naar serial
· type mediumint met extra auto_increment naar serial
· typ bigint met extra auto_increment naar bigserial
· typ tinyint naar boolean when (= 1 precisie) met behulp van tinyint-to-boolean
· typ tinyint naar smallint en laat typemod vallen
· typ smallint naar smallint en laat typemod vallen
· typ mediumint naar integer drop typemod
· typ integer naar integer drop typemod
· typ float om drop typemod te laten zweven
· typ bigint naar bigint en laat typemod vallen
· typ dubbele tot dubbele precisie drop typemod
· type numeriek naar numeriek typemod behouden
· type decimaal naar decimaal typemod behouden
Teksten:
· type char naar varchar typemod behouden
· typ varchar naar tekst
· typ kleine tekst naar tekst
· typ tekst naar tekst
· typ mediumtekst naar tekst
· typ lange tekst naar tekst
Binair:
· typ binair naar bytea
· typ varbinary naar bytea
· typ tinyblob in bytea
· typ blob naar bytea
· typ mediumblob naar bytea
· typ longblob naar bytea
Datum:
· typ datetime wanneer standaard "0000-00-00 00:00:00" en niet null naar timestamptz drop not
null drop standaard met nul-datums-naar-null
· typ datetime wanneer standaard "0000-00-00 00:00:00" om de standaardwaarde te laten vallen met tijdstempels
nul-datums-tot-null
· typ tijdstempel wanneer standaard "0000-00-00 00:00:00" en niet null is om tijdstempel niet te laten vallen
null drop standaard met nul-datums-naar-null
· typ timestamp wanneer standaard "0000-00-00 00:00:00" om timestamptz standaard te laten vallen met
nul-datums-tot-null
· typ datum wanneer standaard "0000-00-00" tot datum laat standaard vallen met zero-dates-to-null
· typ datum tot nu toe
· typ datetime naar timestamptz
· typ timestamp naar timestamptz
· typ year naar integer drop typemod
Geometrisch:
· typ punt naar punt met behulp van pgloader.transforms::convert-mysql-point
Enum-types worden inline gedeclareerd in MySQL en afzonderlijk met een CREATE TYPE commando in
PostgreSQL, dus elke kolom van Enum Type wordt geconverteerd naar een type dat is vernoemd naar de tabel en
kolomnamen gedefinieerd met dezelfde labels in dezelfde volgorde.
Wanneer de definitie van het brontype niet overeenkomt met de standaard castingregels noch in de
casting-regels in de opdracht, dan wordt de typenaam met de typemod gebruikt.
LOAD SQLite DATABASE
Deze opdracht instrueert ploader om gegevens uit een SQLite-bestand te laden. Automatische ontdekking van
het schema wordt ondersteund, inclusief het bouwen van de indexen.
Hier is een voorbeeld:
database laden
van sqlite:///Users/dim/Downloads/lastfm_tags.db
in postgresql:///tags
met include drop, maak tabellen, maak indexen, reset sequenties
zet work_mem op ´16MB´, maintenance_work_mem op ´512 MB´;
De sqlite opdracht accepteert de volgende clausules en opties:
· NU
Pad of HTTP-URL naar een SQLite-bestand kan een .zip bestand.
· MET
Bij het laden van een SQLite database, worden de volgende opties ondersteund:
Bij het laden van een SQLite database, worden de volgende opties ondersteund, en de
verzuim MET clausule is: geen afkappen, en je merk te creëren tafels, omvatten laten vallen, en je merk te creëren indexen,
opnieuw in te stellen sequenties, kleine letter identifiers, codering 'utf-8'.
· omvatten laten vallen
Wanneer deze optie wordt vermeld, laat pgloader alle tabellen in de doel-PostgreSQL vallen
database waarvan de namen voorkomen in de SQLite-database. Met deze optie kunt u de
hetzelfde commando meerdere keren achter elkaar totdat je alle opties hebt uitgezocht, te beginnen
automatisch uit een schone omgeving. Houd er rekening mee dat CASCADE wordt gebruikt om te verzekeren
dat tabellen worden verwijderd, zelfs als er externe sleutels naar verwijzen. Dit is
precies wat omvatten laten vallen is bedoeld om te doen: alle doeltabellen laten vallen en opnieuw maken
Hen.
Grote zorg moet worden genomen bij het gebruik omvatten laten vallen, zoals het zal cascade naar allen
objecten die verwijzen naar de doeltabellen, mogelijk inclusief andere tabellen die dat niet zijn
wordt geladen vanuit de bron-DB.
· omvatten geen laten vallen
Als deze optie wordt vermeld, zal ploader er geen bevatten DROP verklaring bij het laden
de data.
· afkappen
Wanneer deze optie wordt weergegeven, geeft ploader het AFKNOPEN commando tegen elk
PostgreSQL-tabel net voordat er gegevens in worden geladen.
· geen afkappen
Wanneer deze optie wordt weergegeven, geeft ploader nr AFKNOPEN opdracht.
· 'disable' triggers
Wanneer deze optie wordt weergegeven, geeft ploader een ALTER TAFEL ... UITSCH TRIGGER ALLE
opdracht tegen de PostgreSQL-doeltabel voordat u de gegevens kopieert, en vervolgens de opdracht
ALTER TAFEL ... ENABLE TRIGGER ALLE zodra de COPY is klaar.
Met deze optie kunnen gegevens in een reeds bestaande tabel worden geladen, waarbij de vreemd sleutel
schaarste en door de gebruiker gedefinieerde triggers en kan resulteren in ongeldig vreemd sleutel
schaarste zodra de gegevens zijn geladen. Zorgvuldig gebruiken.
· en je merk te creëren tafels
Wanneer deze optie wordt weergegeven, maakt ploader de tabel met behulp van de metagegevens die in
the SQLite bestand, dat een lijst met velden met hun gegevenstype moet bevatten. Een standaard
datatypeconversie van DBF naar PostgreSQL is voltooid.
· en je merk te creëren geen tafels
Wanneer deze optie wordt weergegeven, slaat ploader het maken van een tabel over vóór het laden van gegevens,
doeltabellen moeten dan al bestaan.
· en je merk te creëren indexen
Als deze optie wordt weergegeven, haalt ploader de definities op van alle indexen die in
de SQLite-database en maak dezelfde set indexdefinities tegen de
PostgreSQL-database.
· en je merk te creëren geen indexen
Wanneer deze optie wordt vermeld, slaat ploader het maken van indexen over.
· opnieuw in te stellen sequenties
Wanneer deze optie wordt vermeld, aan het einde van het laden van gegevens en nadat de indexen hebben
allemaal zijn gemaakt, reset ploader alle gemaakte PostgreSQL-reeksen naar de huidige
maximale waarde van de kolom waaraan ze zijn gekoppeld.
· opnieuw in te stellen geen sequenties
Als deze optie wordt weergegeven, slaat ploader het resetten van reeksen na het laden over.
De opties schema Slechts en gegevens Slechts hebben geen invloed op deze optie.
· schema Slechts
Wanneer deze optie wordt vermeld, zal ploader afzien van het migreren van de gegevens. Opmerking
dat het schema in deze context de indexen bevat wanneer de optie en je merk te creëren indexen
is genoteerd.
· gegevens Slechts
Als deze optie wordt weergegeven, geeft ploader alleen het COPY verklaringen, zonder iets te doen
andere verwerking.
· codering
Met deze optie kunt u bepalen met welke codering de SQLite-tekstgegevens moeten worden geparseerd.
Standaard ingesteld op UTF-8.
· CAST
De cast-clausule maakt het mogelijk om aangepaste castingregels te specificeren, ofwel om de standaard te overbelasten
casting regels of om ze te wijzigen met speciale gevallen.
Raadpleeg de MySQL CAST-clausule voor meer informatie.
· INCLUSIEF TAFEL NAMEN BIJ ELKAAR PASSEN
Introduceer een door komma's gescheiden lijst met tabelnamen of regelmatig uitdrukking gebruikt om te beperken
de tabellen die naar een sublijst moeten worden gemigreerd.
Voorbeeld:
INCLUSIEF ALLEEN OVEREENKOMENDE TABELNAMEN ~/filmpje/, ´acteur´
· EXCLUSIEF TAFEL NAMEN BIJ ELKAAR PASSEN
Introduceer een door komma's gescheiden lijst met tabelnamen of regelmatig uitdrukking gebruikt om uit te sluiten
tabelnamen van de migratie. Dit filter is alleen van toepassing op het resultaat van de
INCLUSIEF filter.
UITSLUITEND TAFELNAMEN DIE OVEREENKOMEN ~
DEFAULT SQLite GIETEN REGLEMENT
Bij het migreren van SQLite worden de volgende Casting-regels verstrekt:
Nummers:
· typ tinyint in smallint
· typ integer naar bigint
· typ float om te zweven met behulp van float-to-string
· typ echt naar echt met behulp van float-to-string
· typ dubbele tot dubbele precisie met float-to-string
· typ numeriek naar numeriek met behulp van float-to-string
Teksten:
· typ karakter om tekst te laten vallen typemod
· typ varchar om typemod te laten vallen
· typ nvarchar om typemod te laten vallen
· typ char om typemod te laten vallen
· typ nchar om typemod te laten vallen
· typ nvarchar om typemod te laten vallen
· typ clob om typemod te laten vallen
Binair:
· typ blob naar bytea
Datum:
· typ datetime naar timestamptz met behulp van sqlite-timestamp-to-timestamp
· typ timestamp naar timestamptz met behulp van sqlite-timestamp-to-timestamp
· typ timestamptz naar timestamptz met behulp van sqlite-timestamp-to-timestamp
LOAD MS SQL DATABASE
Deze opdracht instrueert ploader om gegevens uit een MS SQL-database te laden. Automatische ontdekking
van het schema wordt ondersteund, inclusief het bouwen van de indexen, primaire en externe sleutels
beperkingen.
Hier is een voorbeeld:
database laden
van mssql://user@host/dbname
in postgresql:///dbname
inclusief alleen tabelnamen zoals ´GlobalAccount´ in schema ´dbo´
zet work_mem op ´16MB´, maintenance_work_mem op ´512 MB´
voor het laden $$ laat het schema vallen als dbo cascade bestaat; $$;
De mssql opdracht accepteert de volgende clausules en opties:
· NU
Verbindingsreeks naar een bestaande MS SQL-databaseserver die luistert en verwelkomt
externe TCP/IP-verbinding. Aangezien ploader momenteel meelift op het FreeTDS-stuurprogramma, naar
verander de poort van de server, exporteer het TDSPORT variabele omgeving.
· MET
Bij het laden van een MS SQL database, dezelfde opties als bij het laden van een MySQL databank
worden ondersteund. Raadpleeg de sectie MySQL. De volgende opties zijn toegevoegd:
· en je merk te creëren schema
Wanneer deze optie wordt weergegeven, maakt ploader dezelfde schema's als gevonden op de MS SQL
voorbeeld. Dit is de standaardinstelling.
· en je merk te creëren geen schema
Wanneer deze optie wordt weergegeven, onthoudt plloader zich van het maken van schema's, u
moet er dan voor zorgen dat het doelschema wel bestaat.
· CAST
De cast-clausule maakt het mogelijk om aangepaste castingregels te specificeren, ofwel om de standaard te overbelasten
casting regels of om ze te wijzigen met speciale gevallen.
Raadpleeg de MySQL CAST-clausule voor meer informatie.
· INCLUSIEF TAFEL NAMEN LIKE ´...´ [, ´...´] IN TIJDSCHEMA ´...´
Introduceer een door komma's gescheiden lijst met tabelnaampatronen die worden gebruikt om de tabellen te beperken tot
migreren naar een sublijst. Er kan meer dan één dergelijke clausule worden gebruikt, ze worden bij elkaar opgeteld
samen.
Voorbeeld:
inclusief alleen tabelnamen lile ´GlobalAccount´ in schema ´dbo´
· EXCLUSIEF TAFEL NAMEN LIKE ´...´ [, ´...´] IN TIJDSCHEMA ´...´
Introduceer een door komma's gescheiden lijst met tabelnaampatronen die worden gebruikt om tabelnamen uit te sluiten
van de migratie. Dit filter is alleen van toepassing op het resultaat van de INCLUSIEF filter.
UITSLUITEN VAN TABELNAMEN DIE OVEREENKOMEN MET ´LocalAccount´ in schema ´dbo´
DEFAULT MS SQL GIETEN REGLEMENT
Bij het migreren vanuit MS SQL zijn de volgende Casting-regels van toepassing:
Nummers:
· typ tinyint in smallint
· typ float om te zweven met behulp van float-to-string
· typ echt naar echt met behulp van float-to-string
· typ dubbele tot dubbele precisie met float-to-string
· typ numeriek naar numeriek met behulp van float-to-string
· typ decimaal in numeriek met float-to-string
· typ geld naar numeriek met behulp van float-to-string
· typ smallmoney in numeriek met behulp van float-to-string
Teksten:
· typ char om typemod te laten vallen
· typ nchat om typemod te laten vallen
· typ varchar om typemod te laten vallen
· typ nvarchar om typemod te laten vallen
· typ xml om tekst te laten vallen typemod
Binair:
· typ binair naar bytea met behulp van byte-vector-naar-bytea
· typ varbinary naar bytea met behulp van byte-vector-naar-bytea
Datum:
· typ datetime naar timestamptz
· typ datetime2 naar timestamptz
Andere:
· typ bit naar boolean
· type hierarchieid naar bytea
· typ geografie in bytea
· typ uniqueidentifier naar uuid met behulp van sql-server-uniqueidentifier-to-uuid
TRANSFORMATIE FUNCTIES
Sommige gegevenstypen worden op een andere manier geïmplementeerd dan een transformatiefunctie
is noodzakelijk. Deze functie moet worden geschreven Gemeen lispelen en wordt gezocht in de
ploader.transformaties pakket.
Sommige standaard transformatiefuncties worden geleverd met ploader, en u kunt de
--laden opdrachtregeloptie om uw eigen lisp-bestand te laden en te compileren in ploader at
looptijd. Om ervoor te zorgen dat uw functies worden gevonden, moet u eraan denken om uw lisp-bestand te beginnen met de
volgend formulier:
(in-pakket #:ploader.transforms)
De aangeboden transformatiefuncties zijn:
· nul-datums-tot-null
Als de invoerdatum allemaal uit nullen bestaat, retourneer dan nul, die wordt geladen als een PostgreSQL NULL
waarde.
· datum-zonder-scheidingsteken
geldt nul-datums-tot-null transformeer vervolgens de gegeven datum in een formaat dat PostgreSQL
zal daadwerkelijk verwerken:
In: "20041002152952"
Out: "2004-10-02 15:29:52"
· tijd-zonder-scheidingsteken
Transformeer de gegeven tijd in een formaat dat PostgreSQL daadwerkelijk zal verwerken:
In: "08231560"
Uit: "08:23:15.60"
· tinyint-naar-boolean
Omdat MySQL geen correct booleaans type heeft, kleinint wordt vaak gebruikt om dat uit te voeren. Dit
functie transformeert 0 naar 'vals' en al het andere aan WAAR'.
· bits-naar-booleaans
Omdat MySQL geen correct booleaans type heeft, BIT wordt vaak gebruikt om dat uit te voeren. Dit
functie transformeert 1-bit bitvectoren van 0 naar f en elke andere waarde aan t..
· int-naar-ip
Converteer een geheel getal naar een gestippelde weergave van een ip4.
In: 18435761
Uit: "1.25.78.177"
· ip-bereik
Converteert een aantal gehele getallen gegeven als strings naar een bereik van ip4.
In: "16825344" "16825599"
Uit: "1.0.188.0-1.0.188.255"
· convert-mysql-punt
Converteert van de als tekst representatie van punten in MySQL naar de PostgreSQL
vertegenwoordiging.
In: "PUNT(48.5513589 7.6926827)"
Uit: "(48.5513589,7.6926827)"
· zwevend naar string
Converteert een Common Lisp-float naar een string die geschikt is voor een PostgreSQL-float:
In: 100.0d0
Uit: "100.0"
· set-to-enum-array
Converteert een tekenreeks die een MySQL-SET vertegenwoordigt naar een PostgreSQL-array met Enum-waarden van
de set.
In: "foo,bar"
Uit: "{foo,bar}"
· lege-tekenreeks-naar-null
Converteer een lege string naar een null.
· rechts trimmen
Verwijder witruimte aan het einde van de tekenreeks.
· byte-vector-naar-bytea
Transformeer een eenvoudige reeks niet-ondertekende bytes naar het PostgreSQL bytea Hex-formaat
representatie zoals gedocumenteerd op
http://www.postgresql.org/docs/9.3/interactive/datatype-binary.html
· sqlite-tijdstempel-naar-tijdstempel
Het systeem van het SQLite-type is best interessant, dus ga er hier mee om om een tijdstempel te produceren
letterlijke waarden zoals verwacht door PostgreSQL. Dat dekt het jaar alleen op 4 cijfers, 0 datums tot
null en juiste datumstrings.
· sql-server-unieke identificatie-naar-uuid
Het SQL Server-stuurprogramma ontvangt gegevens van het type uniqueidentifier als bytevector die we
moet vervolgens worden geconverteerd naar een UUID-tekenreeks om het PostgreSQL COPY-invoerformaat te verwerken.
· unix-tijdstempel-naar-tijdstempeltz
Converteert een Unix-tijdstempel (aantal seconden verstreken sinds begin 1970) naar een
juiste PostgreSQL-tijdstempelindeling.
LOAD BERICHTEN
Deze opdracht is nog experimenteel en maakt het mogelijk om berichten via UDP te ontvangen met behulp van een syslog
zoals formaat, en laadt, afhankelijk van het matchen van regels, benoemde delen van de gegevensstroom in
een bestemmingstabel.
LAAD BERICHTEN
VAN syslog://localhost:10514/
WANNEER OVEREENKOMT met rsyslog-msg IN apache
REGISTREREN tijdstempel, ip, rest
IN postgresql://localhost/db?logs.apache
SET guc_1 = ´waarde´, guc_2 = ´andere waarde´
WANNEER OVEREENKOMT met rsyslog-msg IN anderen
REGISTREREN tijdstempel, app-naam, data
IN postgresql://localhost/db?logs.others
SET guc_1 = ´waarde´, guc_2 = ´andere waarde´
MET apache = rsyslog
GEGEVENS = IP-REST
IP = 1*3CIJFER "." 1*3CIJFER "."1*3CIJFER "."1*3CIJFER
RUST = ~ /.*/
MET anderen = rsyslog;
Aangezien de opdracht nog steeds experimenteel is, kunnen de opties in de toekomst worden gewijzigd en de
details zijn niet gedocumenteerd.
Gebruik ploader online met behulp van onworks.net-services