Ini adalah perintah pgloader yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
pgloader - Pemuat data PostgreSQL
RINGKASAN
pgloader [ ] [ ]...
pgloader [ ] SUMBER TARGET
DESKRIPSI
pgloader memuat data dari berbagai sumber ke dalam PostgreSQL. Itu bisa mengubah datanya
membaca dengan cepat dan mengirimkan SQL mentah sebelum dan sesudah pemuatan. Ini menggunakan COPY
Protokol PostgreSQL untuk mengalirkan data ke server, dan mengelola kesalahan dengan mengisi a
sepasang tolak.dat dan tolak.log file.
pgloader beroperasi baik menggunakan perintah yang dibaca dari file:
perintah pgloader.load
atau dengan menggunakan argumen dan opsi yang disediakan di baris perintah:
pgloader SUMBER TARGET
ARGUMEN
Argumen pgloader dapat memuat file sebanyak yang diperlukan, atau beberapa koneksi
string ke file input tertentu.
SOURCE KONEKSI STRING
Format string koneksi sumber adalah sebagai berikut:
format:///absolute/path/ke/file.ext
format://./relatif/path/ke/file.ext
Di mana format mungkin salah satunya csv, tetap, salinan, dbf, db3 or ixf.
db://pengguna:pass@host:port/namadb
Di mana db mungkin? sqlite, mysql or mssql.dll.
Saat menggunakan format sumber berbasis file, pgloader juga mendukung pengambilan file secara native
dari lokasi http dan mendekompresi arsip jika diperlukan. Dalam hal ini perlu
untuk menggunakan --Tipe opsi untuk menentukan format file yang diharapkan. Lihat contohnya
di bawah.
Perhatikan juga bahwa beberapa format file memerlukan penjelasan beberapa detail implementasi seperti:
kolom untuk dibaca dan pembatas dan kutipan saat memuat dari csv.
Untuk skenario pemuatan yang lebih kompleks, Anda perlu menulis perintah pemuatan lengkap di
sintaks yang dijelaskan kemudian dalam dokumen ini.
TARGET KONEKSI STRING
Format string koneksi target dijelaskan secara rinci nanti dalam dokumen ini, lihat
Bagian Sambungan String.
PILIHAN
INQUIRY PILIHAN
Gunakan opsi ini ketika Anda ingin tahu lebih banyak tentang cara menggunakan pgloader, sebagai opsi itu
akan menyebabkan pgloader untuk tidak memuat data apa pun.
-h, --membantu
Tampilkan ringkasan penggunaan perintah dan keluar.
-V, --Versi: kapan
Tampilkan string versi pgloader dan keluar.
-E, --list-enkode
Buat daftar penyandian yang diketahui dalam versi pgloader ini.
-U, --upgrade-config
Parsing file yang diberikan di baris perintah sebagai pgloader.conf file dengan MULAILAH sintaksis
yang digunakan di pgloader versi 2.x, dan menampilkan sintaks perintah baru untuk
pgloader pada keluaran standar.
UMUM PILIHAN
Opsi-opsi itu dimaksudkan untuk mengubah pgloader perilaku saat memuat data.
-v, --bertele-tele
Bertele-tele.
-q, --diam
Diam.
-d, --debug
Tampilkan pesan informasi tingkat debug.
-D, --root-dir
Setel direktori kerja root (default ke "/tmp/pgloader").
-L, --file log
Setel file log pgloader (default ke "/tmp/pgloader.log").
--log-min-pesan
Tingkat verbositas minimum yang diperlukan agar pesan log dapat sampai ke file log. Satu dari
kritis, log, kesalahan, peringatan, pemberitahuan, info atau debug.
--pesan-klien-min-
Tingkat verbositas minimum yang diperlukan agar pesan log dapat sampai ke konsol. Satu dari
kritis, log, kesalahan, peringatan, pemberitahuan, info atau debug.
-S, --Ringkasan
Nama file tempat menyalin hasil ringkasan. Jika relatif, nama filenya adalah
diperluas menjadi *root-dir*.
Format nama file default menjadi manusia dibaca. Hal ini dimungkinkan untuk memiliki
output dalam format ramah mesin seperti CSV, COPY (SALINAN PostgreSQL sendiri
format) atau JSON dengan menentukan nama file dengan ekstensi resp. . CSV, .salinan or
.json.
-l , --memuat-lisp-file
Tentukan cadel fillet untuk mengkompilasi dan memuat ke dalam gambar pgloader sebelum membaca
perintah, memungkinkan untuk mendefinisikan fungsi transformasi tambahan. Fungsi-fungsi itu harus
didefinisikan dalam pgloader.transformasi kemasan. Opsi ini dapat muncul lebih dari
sekali di baris perintah.
--upgrade diri :
Tentukan direktori di mana menemukan sumber pgloader sehingga salah satu yang pertama
hal yang dilakukannya adalah memuat secara dinamis (dan mengkompilasi ke kode mesin) yang lain
versi itu sendiri, biasanya yang lebih baru seperti git checkout yang sangat baru.
COMMAND GARIS HANYA OPERASI
Opsi-opsi itu dimaksudkan untuk digunakan saat menggunakan pgloader dari baris perintah saja, bukan
daripada menggunakan file perintah dan klausa perintah kaya dan parser. Dalam kasus sederhana, itu bisa
menjadi jauh lebih mudah untuk menggunakan SOURCE dan TARGET langsung di baris perintah, lalu atur
memuat dengan opsi-opsi itu:
· --dengan "pilihan":
Mengizinkan opsi pengaturan dari baris perintah. Anda dapat menggunakan opsi itu sebanyak
kamu ingin. Argumen opsi harus mengikuti DENGAN klausa untuk jenis sumber dari
SOURCE spesifikasi, seperti yang dijelaskan kemudian dalam dokumen ini.
· --mengatur "guc_name=´nilai´"
Memungkinkan pengaturan konfigurasi PostgreSQL dari baris perintah. Perhatikan bahwa opsi
parsing sama seperti ketika digunakan dari SET klausa perintah, khususnya Anda harus
lampirkan nilai guc dengan tanda kutip tunggal.
· --bidang "..."
Memungkinkan pengaturan definisi bidang sumber. Bidang diakumulasikan dalam urutan yang diberikan pada
baris perintah. Itu mungkin untuk menggunakan --bidang opsi per bidang di sumber
file, atau untuk memisahkan definisi bidang dengan koma, seperti yang akan Anda lakukan di MEMILIKI
BIDANG ayat.
· --Pemeran "..."
Memungkinkan pengaturan aturan casting tertentu untuk memuat data.
· --Tipe csv|diperbaiki|db3|ixf|sqlite|mysql|mssql
Memungkinkan memaksa jenis sumber, dalam kasus ketika SOURCE parsing tidak memuaskan.
· --pengkodean
Atur penyandian file sumber untuk memuat data.
· --sebelum
Parsing nama file yang diberikan untuk kueri SQL dan jalankan terhadap database target sebelumnya
memuat data dari sumbernya. Kueri diuraikan oleh pgloader itu sendiri: mereka membutuhkan
untuk diakhiri dengan titik koma (;) dan file dapat menyertakan \i or \ir perintah untuk
memasukkan berkas lain.
· --setelah
Parsing nama file yang diberikan untuk kueri SQL dan jalankan terhadap database target setelah
setelah memuat data dari sumbernya. Kueri diuraikan dengan cara yang sama seperti dengan
itu --sebelum pilihan, lihat di atas.
LEBIH DEBUG INFORMASI
Untuk mendapatkan jumlah maksimum informasi debug, Anda dapat menggunakan keduanya --bertele-tele dan
--debug beralih pada saat yang sama, yang setara dengan mengatakan --pesan-klien-min-
data. Kemudian pesan log akan menampilkan data yang sedang diproses, dalam kasus di mana
kode memiliki dukungan eksplisit untuk itu.
PENGGUNAAN CONTOH
Tinjau opsi baris perintah dan versi pgloader:
pgloader --bantuan
pgloader --versi
pemuatan dari a kompleks Command
Gunakan file perintah sebagai argumen perintah pgloader, pgloader akan mengurai file itu dan
jalankan perintah yang ditemukan di dalamnya:
pgloader --verbose ./test/csv-districts.load
CSV
Muat data dari file CSV ke tabel yang sudah ada sebelumnya di database Anda:
pgloader --ketik csv
--id bidang --bidang bidang
--dengan terpotong
--dengan "bidang diakhiri oleh ,´"
./test/data/pencocokan-1.csv
postgres:///pgloader?tablename=cocok
Dalam contoh itu, seluruh pemuatan didorong dari baris perintah, melewati kebutuhan untuk
menulis perintah dalam sintaks perintah pgloader seluruhnya. Karena tidak ada perintah,
informasi tambahan yang dibutuhkan harus disediakan pada baris perintah menggunakan --Tipe dan
--bidang dan --dengan switch.
Untuk dokumentasi tentang sintaks yang tersedia untuk --bidang dan --dengan sakelar, tolong
lihat bagian CSV nanti di halaman manual.
Perhatikan juga bahwa PostgreSQL URI menyertakan target nama tabel.
Bacaan dari STDIN
Sumber pgloader berbasis file dapat dimuat dari input standar, seperti berikut ini:
contoh:
pgloader --ketik csv
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--dengan "lewati header = 1"
--dengan "bidang diakhiri oleh \t´"
-
postgresql:///pgloader?districts_longlat
< tes/data/2013_Gaz_113CDs_national.txt
tanda hubung (-) karakter sebagai sumber digunakan untuk mengartikan standard memasukkan, seperti biasa di Unix
baris perintah. Dimungkinkan untuk mengalirkan konten terkompresi ke pgloader dengan teknik ini,
menggunakan pipa Unix:
gunzip -c source.gz | pgloader --ketik csv ... - pgsql:///target?foo
pemuatan dari CSV tersedia melalui HTTP
Perintah yang sama seperti di atas juga dapat dijalankan jika file CSV ditemukan di a
lokasi HTTP jarak jauh:
pgloader --ketik csv
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--dengan "lewati header = 1"
--dengan "bidang diakhiri oleh \t´"
http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt
postgresql:///pgloader?districts_longlat
Beberapa opsi lagi harus digunakan dalam kasus itu, karena file berisi header satu baris
(paling umum itu nama kolom, bisa menjadi pemberitahuan hak cipta). Juga, dalam hal ini, kami
tentukan semua bidang menjadi satu --bidang argumen opsi.
Sekali lagi, string koneksi target PostgreSQL harus berisi: nama tabel pilihan dan kamu
harus memastikan bahwa tabel target ada dan mungkin sesuai dengan data. Berikut perintah SQL-nya
digunakan dalam contoh itu jika Anda ingin mencobanya sendiri:
buat tabel district_longlat
(
teks usps,
teks geoid,
aland bigint,
air besar,
aland_sqmi presisi ganda,
awater_sqmi presisi ganda,
presisi ganda intptlat,
presisi ganda intptlong
);
Perhatikan juga bahwa perintah yang sama akan bekerja melawan versi yang diarsipkan dari data yang sama,
misalnya http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz.
Terakhir, penting untuk dicatat bahwa pgloader pertama-tama mengambil konten dari URL HTTP
ke file lokal, lalu perluas arsip saat dikenali sebagai satu, dan baru kemudian
memproses file yang diperluas secara lokal.
Dalam beberapa kasus, baik karena pgloader tidak memiliki dukungan langsung untuk format arsip Anda atau
mungkin karena memperluas arsip tidak layak di lingkungan Anda, Anda mungkin ingin
aliran konten langsung dari lokasinya yang jauh ke dalam PostgreSQL. Begini caranya
itu, menggunakan pertempuran lama yang menguji trik Unix Pipes:
keriting http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz
| gunzip -c
| pgloader --ketik csv
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--dengan "lewati header = 1"
--dengan "bidang diakhiri oleh \t´"
-
postgresql:///pgloader?districts_longlat
Sekarang OS akan menangani streaming dan buffering antara jaringan dan
perintah dan pgloader akan menangani streaming data ke PostgreSQL.
Bermigrasi dari SQLite
Perintah berikut akan membuka database SQLite, temukan definisi tabelnya
termasuk indeks dan kunci asing, migrasikan definisi tersebut sambil pengecoran tipe datanya
spesifikasi ke setara PostgreSQL mereka dan kemudian memigrasikan data melalui:
createb newdb
pgloader ./test/sqlite/sqlite.db postgresql:///newdb
Bermigrasi dari MySQL
Cukup buat database tempat menyimpan data dan definisi MySQL dan minta pgloader melakukannya
migrasi untuk Anda dalam satu baris perintah:
pagila yang dibuat
pgloader mysql://user@localhost/sakila postgresql:///pagila
Mengambil an diarsipkan DBF fillet dari a HTTP terpencil tempat
Mungkin bagi pgloader untuk mengunduh file dari HTTP, membuka arsipnya, dan baru kemudian membukanya
untuk menemukan skema kemudian memuat data:
dibuat b foo
pgloader --ketik dbf http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/historiq2013.zip postgresql:///foo
Di sini pgloader tidak mungkin menebak jenis sumber data yang diberikan, jadi
itu perlu untuk menggunakan --Tipe saklar baris perintah.
BATCH DAN Mencoba kembali TINGKAH LAKU
Untuk memuat data ke PostgreSQL, pgloader menggunakan: COPY protokol streaming. Sementara ini adalah
cara memuat data lebih cepat, COPY memiliki kelemahan penting: segera setelah PostgreSQL memancarkan
kesalahan dengan sedikit data yang dikirim ke sana, apa pun masalahnya, seluruh kumpulan data adalah
ditolak oleh PostgreSQL.
Untuk mengatasinya, pgloader memotong data menjadi bets masing-masing 25000 baris, sehingga ketika
masalah terjadi itu hanya berdampak pada banyak baris data. Setiap batch disimpan dalam memori
selagi COPY streaming terjadi, untuk dapat menangani kesalahan jika terjadi.
Ketika PostgreSQL menolak seluruh batch, pgloader mencatat pesan kesalahan kemudian mengisolasi
baris buruk dari yang diterima dengan mencoba kembali baris batch dalam batch yang lebih kecil. Melakukan
itu, pgloader mem-parsing KONTEKS pesan kesalahan dari COPY yang gagal, sebagai pesan
berisi nomor baris di mana kesalahan ditemukan dalam batch, seperti berikut:
contoh:
KONTEKS: kesalahan SALIN, baris 3, kolom b: "2006-13-11"
Dengan menggunakan informasi itu, pgloader akan memuat ulang semua baris dalam kumpulan sebelum kesalahan
satu, catat yang salah sebagai ditolak, lalu coba muat sisa kumpulan di a
upaya tunggal, yang mungkin atau mungkin tidak berisi data salah lainnya.
Di akhir pemuatan yang berisi baris yang ditolak, Anda akan menemukan dua file di root-dir
lokasi, di bawah direktori bernama sama dengan database target setup Anda. Itu
nama file adalah tabel target, dan ekstensinya adalah dat untuk data yang ditolak dan
.log untuk file yang berisi log sisi klien PostgreSQL lengkap tentang data yang ditolak.
dat file diformat dalam PostgreSQL format SALIN teks seperti yang didokumentasikan dalam
http://www.postgresql.org/docs/9.2/static/sql-copy.html#AEN66609 .
A CATATAN TENTANG KAMI KINERJA
pgloader telah dikembangkan dengan mempertimbangkan kinerja, untuk dapat mengatasi masalah yang pernah ada
meningkatnya kebutuhan dalam memuat data dalam jumlah besar ke dalam PostgreSQL.
Arsitektur dasar yang digunakannya adalah model pipa Unix lama, di mana utas bertanggung jawab
untuk memuat data (membaca file CSV, menanyakan MySQL, dll) dan mengisi pra-proses
data ke dalam antrian. Utas lain masuk dari antrean, terapkan lagi transformasi
ke data input dan streaming hasil akhirnya ke PostgreSQL menggunakan protokol COPY.
Ketika diberi file yang PostgreSQL COPY perintah tahu cara mengurai, dan jika file
tidak mengandung data yang salah, maka pgloader tidak akan pernah secepat hanya menggunakan
PostgreSQL COPY perintah.
Perhatikan bahwa sementara COPY perintah dibatasi untuk membaca baik dari input standarnya atau
dari file lokal di sistem file server, alat baris perintah psql mengimplementasikan a
\salinan perintah yang mengetahui cara melakukan streaming file lokal ke klien melalui jaringan dan
ke dalam server PostgreSQL, menggunakan protokol yang sama seperti yang digunakan pgloader.
SOURCE FORMAT
pgloader mendukung format input berikut:
· csv, yang juga mencakup tsv dan varian umum lainnya tempat Anda dapat mengubah
alat pemisah dan mengutip aturan dan cara melarikan diri itu tanda kutip diri;
· file kolom tetap, di mana pgloader cukup fleksibel untuk mengakomodasi file sumber
kolom yang hilang (kasar tetap panjangnya kolom arsip memang ada);
· File berformat PostgreSLQ COPY, mengikuti dokumentasi COPY TEXT dari PostgreSQL,
seperti file penolakan yang disiapkan oleh pgloader;
· file dbase yang dikenal sebagai file db3 atau dbf;
· file berformat ixf, ixf menjadi format penyimpanan biner dari IBM;
· database sqlite dengan penemuan skema yang sepenuhnya otomatis dan aturan pemeran lanjutan;
· database mysql dengan penemuan skema yang sepenuhnya otomatis dan aturan pemeran lanjutan;
· Basis data MS SQL dengan penemuan skema yang sepenuhnya otomatis dan aturan pemeran lanjutan.
PGLOADER PERINTAH SINTAKSIS
pgloader mengimplementasikan Bahasa Khusus Domain yang memungkinkan untuk mengatur pemuatan data yang kompleks
skrip yang menangani kolom yang dihitung dan sanitasi data input saat itu juga. Untuk lebih
skenario pemuatan data yang kompleks, Anda akan diminta untuk mempelajari sintaks DSL itu. Nya
dimaksudkan agar terlihat akrab dengan DBA dengan terinspirasi oleh SQL di tempat yang masuk akal, yang tidak
sebanyak itu.
Perintah pgloader mengikuti aturan tata bahasa global yang sama. Masing-masing dari mereka mungkin mendukung
hanya sebagian dari opsi umum dan memberikan opsi khusus.
MEMUAT
DARI [ MEMILIKI LAPANGAN ]
KE DALAM [ KOLOM TARGET ]
[ DENGAN ]
[ MENGATUR ]
[ SEBELUM MEMBUAT [ LAKUKAN | MENJALANKAN ] ... ]
[ SETELAH BEBAN [ LAKUKAN | MENJALANKAN ] ... ]
;
Klausa utama adalah LOAD, DARI, KE dan DENGAN klausa yang diimplementasikan oleh setiap perintah.
Beberapa perintah kemudian mengimplementasikan SET perintah, atau beberapa klausa tertentu seperti CAST
ayat.
UMUM klausa
Beberapa klausa umum untuk semua perintah:
· DARI
DARI klausa menentukan dari mana harus membaca data, dan setiap perintah memperkenalkan
varian sumber sendiri. Misalnya, CSV sumber mendukung inline, stdin, Sebuah
nama file, nama file yang dikutip, dan a NAMA FILE SESUAI klausa (lihat di atas); sedangkan
MySQL source hanya mendukung spesifikasi URI database MySQL.
Dalam semua kasus, file DARI klausa dapat membaca nilainya dari variabel lingkungan
saat menggunakan formulir DAPATKANV varname´.
· KE
URI koneksi PostgreSQL harus berisi nama tabel target tempat memuat
data ke dalam. Tabel itu pasti sudah dibuat di PostgreSQL, dan namanya
mungkin skema memenuhi syarat.
KE koneksi database target URI dapat diuraikan dari nilai lingkungan
variabel saat menggunakan formulir DAPATKANV varname´.
Kemudian KE opsi juga mendukung daftar kolom target yang dipisahkan koma,
yang merupakan nama input bidang atau daftar yang dipisahkan spasi putih dari
nama kolom target, tipe data PostgreSQL dan a MENGGUNAKAN ekspresi.
MENGGUNAKAN ekspresi dapat berupa bentuk Common Lisp yang valid dan akan dibaca dengan
paket saat ini disetel ke pgloader.transformasi, sehingga Anda dapat menggunakan fungsi yang didefinisikan dalam
paket itu, seperti fungsi yang dimuat secara dinamis dengan --memuat command line
parameter.
Masing-masing MENGGUNAKAN ekspresi dikompilasi saat runtime ke kode asli.
Fitur ini memungkinkan pgloader memuat sejumlah bidang dalam file CSV ke dalam a
mungkin jumlah kolom yang berbeda dalam database, menggunakan kode khusus untuk itu
proyeksi.
· DENGAN
Kumpulan opsi untuk diterapkan ke perintah, menggunakan sintaks global:
· kunci = nilai
· menggunakan Option
· do tidak menggunakan Option
Lihat setiap perintah khusus untuk detailnya.
· SET
Klausa ini memungkinkan untuk menentukan parameter sesi yang akan ditetapkan untuk semua sesi yang dibuka
oleh pgloader. Itu mengharapkan daftar nama parameter, tanda sama dengan, lalu
nilai yang dikutip tunggal sebagai daftar yang dipisahkan koma.
Nama dan nilai parameter tidak divalidasi oleh pgloader, mereka diberikan
apa adanya ke PostgreSQL.
· SEBELUM LOAD DO
Anda dapat menjalankan kueri SQL terhadap database sebelum memuat data dari CSV
mengajukan. Kueri SQL yang paling umum adalah MEMBUAT TABEL IF JANGAN ADA agar datanya bisa
sarat.
Setiap perintah harus kutipan dolar: harus dimulai dan diakhiri dengan tanda dolar ganda,
$$. Kueri yang dikutip dolar kemudian dipisahkan dengan koma. Tidak ada tanda baca tambahan yang diharapkan
setelah kueri SQL terakhir.
· SEBELUM LOAD MENJALANKAN
Perilaku yang sama seperti di SEBELUM LOAD DO ayat. Memungkinkan Anda membaca kueri SQL
dari file SQL. Menerapkan dukungan untuk kutipan dolar PostgreSQL dan \i dan \ir
termasuk fasilitas seperti di psql mode batch (di mana mereka adalah hal yang sama).
· SETELAH LOAD DO
Format yang sama dengan SEBELUM LOAD DO, kueri yang dikutip dolar yang ditemukan di bagian itu adalah
dijalankan setelah beban selesai. Itu waktu yang tepat untuk membuat indeks dan
kendala, atau mengaktifkan kembali pemicu.
· SETELAH LOAD MENJALANKAN
Perilaku yang sama seperti di SETELAH LOAD DO ayat. Memungkinkan Anda membaca kueri SQL dari
sebuah file SQL. Menerapkan dukungan untuk kutipan dolar PostgreSQL dan \i dan \ir
termasuk fasilitas seperti di psql mode batch (di mana mereka adalah hal yang sama).
Koneksi String
parameter diharapkan diberikan sebagai Koneksi URI seperti yang didokumentasikan
dalam dokumentasi PostgreSQL di
http://www.postgresql.org/docs/9.3/static/libpq-connect.html#LIBPQ-CONNSTRING.
postgresql://[pengguna[:kata sandi]@][netloc][:port][/dbname][?option=nilai&...]
Dimana:
· pemakai
Dapat berisi karakter apa saja, termasuk titik dua (:) yang kemudian harus digandakan (::) Dan
di-tanda (@) yang kemudian harus digandakan (@@).
Ketika dihilangkan, pemakai nama default ke nilai PGUSER variabel lingkungan,
dan jika tidak disetel, nilai PENGGUNA variabel lingkungan.
· kata sandi
Dapat berisi karakter apa saja, termasuk tanda at (@) yang kemudian harus digandakan (@@).
Untuk membiarkan kata sandi kosong, ketika pemakai nama diakhiri dengan di tanda, maka Anda harus
gunakan sintaks pengguna:@.
Ketika dihilangkan, kata sandi default ke nilai Kata sandi PG lingkungan Hidup
variabel jika disetel, jika tidak, kata sandi dibiarkan tidak disetel.
· netloc
Dapat berupa nama host dalam notasi titik-titik, atau ipv4, atau soket domain Unix
jalur. Kosong adalah lokasi jaringan default, di bawah sistem yang menyediakan unix domain
stopkontak metode itu lebih disukai, jika tidak, netloc default untuk localhost.
Itu mungkin untuk memaksa unix domain stopkontak jalur dengan menggunakan sintaks
unix:/path/ke/di mana/the/socket/file/is, jadi untuk memaksa jalur soket non-default dan a
port non default, Anda akan memiliki:
postgresql://unix:/ Tmp:54321/dbnama
netloc default ke nilai PGHOST variabel lingkungan, dan jika tidak disetel,
ke default unix jalur soket saat berjalan di sistem Unix, dan localhost
jika tidak.
· nama db
Harus berupa pengenal yang tepat (huruf diikuti dengan campuran huruf, angka, dan
tanda baca koma (,), berlari (-) dan garis bawah (_).
Ketika dihilangkan, nama db default ke nilai variabel lingkungan PGDATABASE,
dan jika itu tidak disetel, ke pemakai nilai seperti yang ditentukan di atas.
· Pilihan
Parameter opsional harus disertakan dengan formulir nama=nilai, dan Anda dapat menggunakan
beberapa parameter dengan memisahkannya menggunakan ampersand (&) karakter.
Hanya beberapa opsi yang didukung di sini, nama tabel (yang mungkin memenuhi syarat dengan
nama skema) mode ssl, tuan rumah, pelabuhan, nama db, pemakai dan kata sandi.
mode ssl nilai parameter dapat menjadi salah satu dari menonaktifkan, mengizinkan, lebih suka or membutuhkan.
Untuk alasan kompatibilitas mundur, dimungkinkan untuk menentukan nama tabel Option
langsung, tanpa mengeja nama tabel= bagian.
Opsi menimpa komponen URI utama ketika keduanya diberikan, dan menggunakan
parameter opsi yang disandikan persen memungkinkan penggunaan kata sandi yang dimulai dengan titik dua dan
melewati batasan penguraian komponen URI lainnya.
Reguler Ekspresi
Beberapa klausa yang tercantum dalam accept reguler ekspresi dengan berikut ini
aturan masukan:
· Ekspresi reguler dimulai dengan tanda tilde (~),
· kemudian diikuti dengan tanda pembuka,
· maka karakter apa pun diperbolehkan dan dianggap sebagai bagian dari ekspresi reguler, kecuali
untuk tanda penutup,
· maka diharapkan tanda penutup.
Tanda pembuka dan penutup diperbolehkan berpasangan, berikut daftar lengkapnya yang diizinkan
pembatas:
~//
~[]
~{}
~()
~<>
~""
~´´
~||
~##
Pilih set pembatas yang tidak bertabrakan dengan reguler ekspresi kamu mencoba untuk
memasukkan. Jika ekspresi Anda sedemikian rupa sehingga tidak ada solusi yang memungkinkan Anda untuk memasukkannya,
tempat di mana ekspresi seperti itu diizinkan harus memungkinkan daftar ekspresi.
komentar
Perintah apa pun dapat berisi komentar, mengikuti aturan input tersebut:
· NS -- pembatas memulai komentar yang diakhiri dengan akhir baris saat ini,
· pembatas /* dan */ masing-masing memulai dan mengakhiri komentar, yang dapat ditemukan di
tengah perintah atau rentang beberapa baris.
Setiap tempat di mana Anda bisa masuk ruang putih akan menerima komentar juga.
Sekumpulan laku Pilihan
Semua perintah pgloader memiliki dukungan untuk a DENGAN klausa yang memungkinkan untuk menentukan opsi.
Beberapa opsi bersifat umum dan diterima oleh semua perintah, seperti sekumpulan laku
Pilihan, dan beberapa opsi khusus untuk jenis sumber data, seperti CSV melewatkan Header
.
Opsi perilaku batch global adalah:
· sekumpulan baris
Mengambil nilai numerik sebagai argumen, digunakan sebagai jumlah maksimum baris yang diizinkan dalam a
kelompok. Standarnya adalah 25 000 dan dapat diubah untuk mencoba memiliki penampilan yang lebih baik
karakteristik atau untuk mengontrol penggunaan memori pgloader;
· sekumpulan ukuran
Mengambil unit memori sebagai argumen, seperti 20 MB, nilai defaultnya. Diterima
pengganda adalah kB, MB, GB, TB dan PB. Casenya penting biar gak bingung
tentang bit versus byte, kami hanya berbicara byte di sini.
· sekumpulan konkurensi
Mengambil nilai numerik sebagai argumen, default ke 10. Itu jumlah batch yang
pgloader memungkinkan untuk membangun memori, bahkan ketika hanya satu batch pada satu waktu mungkin
dikirim ke PostgreSQL.
Mendukung lebih dari satu batch yang dikirim pada satu waktu ada di daftar TODO
pgloader, tetapi belum diimplementasikan. Opsi ini tentang mengendalikan memori
kebutuhan pgloader sebagai trade-off dengan karakteristik kinerja, dan bukan tentang
aktivitas paralel pgloader.
Opsi lain khusus untuk setiap sumber input, silakan merujuk ke bagian tertentu dari
dokumentasi untuk listing dan cover mereka.
Sebuah batch kemudian ditutup segera setelah sekumpulan baris atau itu sekumpulan ukuran ambang batas adalah
menyeberang, mana yang lebih dulu. Dalam kasus ketika batch harus ditutup karena:
sekumpulan ukuran pengaturan, men-debug pesan log level dicetak dengan berapa banyak baris yang muat di
terlalu besar batch
LOAD CSV
Perintah ini menginstruksikan pgloader untuk memuat data dari a CSV mengajukan. Berikut contohnya:
MUAT CSV
DARI GeoLiteCity-Blocks.csv´ DENGAN ENCODING iso-646-us
MEMILIKI LAPANGAN
(
startIpNum, endIpNum, locId
)
KE postgresql://user@localhost:54393/dbname?geolite.blocks
KOLOM TARGET
(
iprange ip4r menggunakan (ip-range startIpNum endIpNum),
lokasi
)
DENGAN memotong,
lewati tajuk = 2,
bidang opsional tertutup oleh "´,
bidang diloloskan oleh kutipan garis miring terbalik,
bidang diakhiri oleh \t´
SET work_mem ke 32 MB´, maintenance_work_mem ke 64 MB´;
csv perintah format menerima klausa dan opsi berikut:
· DARI
Nama file tempat memuat data. Menerima dan pengkodean pilihan. Menggunakan
--list-enkode opsi untuk mengetahui nama penyandian mana yang didukung.
Nama file dapat diapit oleh tanda kutip tunggal, dan dapat berupa salah satu dari berikut ini
nilai khusus:
· inline
Data ditemukan setelah akhir dari perintah yang diuraikan. Sejumlah baris kosong
antara akhir perintah dan awal data diterima.
· stdin
Membaca data dari aliran input standar.
· NAMA FILE SESUAI
Seluruh sesuai klausa harus mengikuti aturan berikut:
[ SEMUA NAMA FILE | [ PERTAMA ] NAMA FILE ]
regeks yang SESUAI
[ DALAM DIREKTORI ...´ ]
sesuai klausa berlaku diberikan reguler ekspresi (lihat di atas untuk sintaks yang tepat, beberapa
opsi dapat digunakan di sini) ke nama file. Maka dimungkinkan untuk memuat data hanya dari
pertandingan pertama dari mereka semua.
Opsional IN DIREKTORI klausa memungkinkan menentukan direktori mana yang harus dilalui untuk menemukan
file data, dan dapat berupa relatif ke tempat file perintah dibaca, atau
mutlak. Direktori yang diberikan harus ada.
DARI opsi juga mendukung daftar opsional yang dipisahkan koma dari bidang nama yang menjelaskan
apa yang diharapkan dalam CSV file data, secara opsional diperkenalkan oleh klausa MEMILIKI BIDANG.
Setiap nama bidang dapat berupa hanya satu nama atau nama berikut dengan pembaca tertentu
opsi untuk bidang itu, diapit dalam tanda kurung siku dan dipisahkan dengan koma. Didukung
opsi pembaca per bidang adalah:
· dihentikan by
Lihat deskripsi dari bidang dihentikan by di bawah.
Pemrosesan opsi ini saat ini tidak diterapkan.
· tanggal format
Ketika bidang diharapkan dari jenis tanggal, maka opsi ini memungkinkan untuk menentukan
format tanggal yang digunakan dalam file.
String format tanggal adalah string template yang dimodelkan terhadap PostgreSQL ke_char
dukungan string template, terbatas pada pola berikut:
· YYYY, YYY, YY untuk bagian tahun
· MM untuk bagian bulan numerik
· DD untuk bagian hari numerik
· HH, HH12, HH24 untuk bagian jam
· pagi, pagi, pagi, pagi
· sore, PM, sore, PM
· MI untuk bagian menit
· SS untuk bagian detik
· MS untuk bagian milidetik (4 digit)
· AS untuk bagian mikrodetik (6 digit)
· tanda baca yang belum diuraikan: - . * # @ T / \ dan spasi
Berikut adalah contoh dari tanggal format spesifikasi:
nama kolom [format tanggal YYYY-MM-DD HH24-MI-SS.US´]
· nol if
Opsi ini mengambil argumen yang merupakan kata kunci kosong atau kutipan ganda
String.
Ketika kosong digunakan dan nilai bidang yang dibaca hanya berisi karakter spasi,
kemudian secara otomatis dikonversi ke SQL NULL nilai.
Ketika string bertanda kutip ganda digunakan dan string tersebut dibaca sebagai nilai bidang, maka
nilai bidang secara otomatis dikonversi ke SQL NULL nilai.
· memangkas kedua ruang putih, memangkas meninggalkan ruang putih, memangkas benar ruang putih
Opsi ini memungkinkan untuk memangkas spasi putih dalam data yang dibaca, baik dari kedua sisi
data, atau hanya karakter spasi putih yang ditemukan di sebelah kiri streaing, atau hanya
mereka di sebelah kanan string.
· DENGAN
Saat memuat dari a CSV file, opsi berikut didukung:
· memotong
Saat opsi ini dicantumkan, pgloader mengeluarkan a MEMOTONG perintah terhadap PostgreSQL
tabel target sebelum membaca file data.
· menjatuhkan indeks
Ketika opsi ini terdaftar, masalah pgloader DROP INDEKS perintah terhadap semua
indeks yang ditentukan pada tabel target sebelum menyalin data, lalu MEMBUAT INDEKS
perintah sekali COPY dilakukan.
Untuk mendapatkan performa terbaik, semua indeks dibuat di
paralel dan ketika selesai, kunci utama dibangun kembali dari indeks unik saja
dibuat. Proses dua langkah ini memungkinkan pembuatan indeks kunci utama secara paralel dengan
indeks lainnya, karena hanya MENGUBAH TABEL perintah membutuhkan mengakses eksklusif mengunci on
meja sasaran.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· melewatkan Header
Mengambil nilai numerik sebagai argumen. Perintahkan pgloader untuk melewati banyak baris di
awal dari file masukan.
· csv Header
Gunakan baris pertama baca setelah melewatkan Header sebagai daftar nama bidang csv dapat ditemukan
dalam file CSV, menggunakan parameter CSV yang sama seperti untuk data CSV.
· memangkas tidak dikutip kosong
Saat membaca nilai yang tidak dikutip dalam CSV file, hapus bagian yang kosong yang ditemukan di antara
pemisah dan nilainya. Perilaku itu adalah default.
· menjaga tidak dikutip kosong
Saat membaca nilai yang tidak dikutip dalam CSV file, biarkan kosong ditemukan di antara
pemisah dan nilainya.
· bidang opsional tertutup by
Mengambil satu karakter sebagai argumen, yang harus ditemukan di dalam tanda kutip tunggal, dan
mungkin diberikan sebagai karakter yang dapat dicetak itu sendiri, nilai khusus \t untuk menunjukkan a
karakter tabulasi, atau 0x kemudian nilai heksadesimal dibaca sebagai kode ASCII untuk
karakter.
Karakter ini digunakan sebagai karakter kutipan dalam CSV file, dan default ke
kutipan ganda.
· bidang tidak tertutup
Secara default, pgloader akan menggunakan karakter tanda kutip ganda sebagai karakter penutup.
Jika Anda memiliki file CSV yang tidak menyertakan bidang dan menggunakan tanda kutip ganda sebagai
karakter biasa yang diharapkan, lalu gunakan opsi bidang tidak tertutup untuk CSV
parser untuk menerima nilai-nilai tersebut.
· bidang melarikan diri by
Mengambil baik nilai khusus tanda kutip garis miring terbalik or kutipan ganda, atau nilai apa pun yang didukung
oleh bidang dihentikan by pilihan (lihat di bawah). Nilai ini digunakan untuk mengenali
pemisah bidang yang lolos ketika mereka ditemukan di dalam bidang data itu sendiri.
Default untuk kutipan ganda.
· csv melarikan diri mode
Mengambil baik nilai khusus mengutip (default) atau berikut dan memungkinkan CSV
parser untuk mengurai hanya pemisah bidang yang lolos atau karakter apa pun (termasuk CSV
data) saat menggunakan berikut nilai.
· bidang dihentikan by
Mengambil satu karakter sebagai argumen, yang harus ditemukan di dalam tanda kutip tunggal, dan
mungkin diberikan sebagai karakter yang dapat dicetak itu sendiri, nilai khusus \t untuk menunjukkan a
karakter tabulasi, atau 0x kemudian nilai heksadesimal dibaca sebagai kode ASCII untuk
karakter.
Karakter ini digunakan sebagai bidang alat pemisah saat membaca CSV Data.
· baris dihentikan by
Mengambil satu karakter sebagai argumen, yang harus ditemukan di dalam tanda kutip tunggal, dan
mungkin diberikan sebagai karakter yang dapat dicetak itu sendiri, nilai khusus \t untuk menunjukkan a
karakter tabulasi, atau 0x kemudian nilai heksadesimal dibaca sebagai kode ASCII untuk
karakter.
Karakter ini digunakan untuk mengenali akhir baris kondisi saat membaca CSV Data.
LOAD TETAP KOL
Perintah ini menginstruksikan pgloader untuk memuat data dari file teks yang berisi kolom-kolom yang disusun
dalam tetap ukuran tata krama. Berikut contohnya:
BEBAN TETAP
DARI sebaris
(
dari 0 untuk 10,
b dari 10 untuk 8,
c dari 18 untuk 8,
d dari 26 untuk 17 [null jika kosong, pangkas spasi kanan]
)
KE postgresql:///pgloader?fixed
(
a, b,
c menggunakan waktu (waktu-tanpa-pemisah c),
d
)
DENGAN memotong
SET client_encoding ke latin1´,
work_mem ke 14MB´,
standard_conforming_strings ke on´
SEBELUM LOAD LAKUKAN
$$ drop tabel jika ada diperbaiki; $$,
$$ buat tabel diperbaiki (
bilangan bulat,
tanggal b,
waktu c,
d teks
);
$$;
01234567892008052011431250baris pertama
01234562008052115182300dibiarkan kosong-empuk
12345678902008052208231560baris lain
2345609872014092914371500
2345678902014092914371520
tetap perintah format menerima klausa dan opsi berikut:
· DARI
Nama file tempat memuat data. Menerima dan pengkodean pilihan. Menggunakan
--list-enkode opsi untuk mengetahui nama penyandian mana yang didukung.
Nama file dapat diapit oleh tanda kutip tunggal, dan dapat berupa salah satu dari berikut ini
nilai khusus:
· inline
Data ditemukan setelah akhir dari perintah yang diuraikan. Sejumlah baris kosong
antara akhir perintah dan awal data diterima.
· stdin
Membaca data dari aliran input standar.
DARI opsi juga mendukung daftar opsional yang dipisahkan koma dari bidang nama yang menjelaskan
apa yang diharapkan dalam TETAP file data.
Setiap nama bidang terdiri dari nama bidang diikuti dengan opsi pembaca khusus untuk
bidang itu. Opsi pembaca per bidang yang didukung adalah sebagai berikut, di mana hanya awal dan
panjangnya diperlukan.
· awal
Posisikan di baris tempat mulai membaca nilai bidang itu. Dapat dimasukkan dengan
angka desimal atau 0x kemudian digit heksadesimal.
· panjangnya
Berapa banyak byte yang harus dibaca dari awal posisi untuk membaca nilai bidang itu. format yang sama
as awal.
Parameter opsional tersebut harus diapit dalam tanda kurung siku dan dipisahkan dengan koma:
· dihentikan by
Lihat deskripsi dari bidang dihentikan by di bawah.
Pemrosesan opsi ini saat ini tidak diterapkan.
· tanggal format
Ketika bidang diharapkan dari jenis tanggal, maka opsi ini memungkinkan untuk menentukan
format tanggal yang digunakan dalam file.
String format tanggal adalah string template yang dimodelkan terhadap PostgreSQL ke_char
dukungan string template, terbatas pada pola berikut:
· YYYY, YYY, YY untuk bagian tahun
· MM untuk bagian bulan numerik
· DD untuk bagian hari numerik
· HH, HH12, HH24 untuk bagian jam
· pagi, pagi, pagi, pagi
· sore, PM, sore, PM
· MI untuk bagian menit
· SS untuk bagian detik
· MS untuk bagian milidetik (4 digit)
· AS untuk bagian mikrodetik (6 digit)
· tanda baca yang belum diuraikan: - . * # @ T / \ dan spasi
Berikut adalah contoh dari tanggal format spesifikasi:
nama kolom [format tanggal YYYY-MM-DD HH24-MI-SS.US´]
· nol if
Opsi ini mengambil argumen yang merupakan kata kunci kosong atau kutipan ganda
String.
Ketika kosong digunakan dan nilai bidang yang dibaca hanya berisi karakter spasi,
kemudian secara otomatis dikonversi ke SQL NULL nilai.
Ketika string bertanda kutip ganda digunakan dan string tersebut dibaca sebagai nilai bidang, maka
nilai bidang secara otomatis dikonversi ke SQL NULL nilai.
· memangkas kedua ruang putih, memangkas meninggalkan ruang putih, memangkas benar ruang putih
Opsi ini memungkinkan untuk memangkas spasi putih dalam data yang dibaca, baik dari kedua sisi
data, atau hanya karakter spasi putih yang ditemukan di sebelah kiri streaing, atau hanya
mereka di sebelah kanan string.
· DENGAN
Saat memuat dari a TETAP file, opsi berikut didukung:
· memotong
Saat opsi ini dicantumkan, pgloader mengeluarkan a MEMOTONG perintah terhadap PostgreSQL
tabel target sebelum membaca file data.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· melewatkan Header
Mengambil nilai numerik sebagai argumen. Perintahkan pgloader untuk melewati banyak baris di
awal dari file masukan.
LOAD COPY TERFORMAT FILE
Perintah ini menginstruksikan pgloader untuk memuat dari file yang berisi data COPY TEXT sebagai
dijelaskan dalam dokumentasi PostgreSQL. Berikut contohnya:
MUAT SALINAN
DARI copy://./data/track.copy
(
trackid, trek, album, media, genre, komposer,
milidetik, byte, harga satuan
)
KE postgresql:///pgloader?track_full
DENGAN memotong
SET client_encoding ke latin1´,
work_mem ke 14MB´,
standard_conforming_strings ke on´
SEBELUM LOAD LAKUKAN
$$ drop tabel jika ada track_full; $$,
$$ buat tabel track_full (
serial besar trackid,
lacak teks,
teks album,
teks media,
teks genre,
teks komposer,
milidetik besar,
byte bigint,
angka harga satuan
);
$$;
COPY perintah format menerima klausa dan opsi berikut:
· DARI
Nama file tempat memuat data. Ini mendukung file lokal, URL HTTP, dan zip
file yang berisi satu file dbf dengan nama yang sama. Ambil file zip seperti itu dari
Alamat HTTP tentu saja didukung.
· DENGAN
Saat memuat dari a COPY file, opsi berikut didukung:
· pembatas
Mengambil satu karakter sebagai argumen, yang harus ditemukan di dalam tanda kutip tunggal, dan
mungkin diberikan sebagai karakter yang dapat dicetak itu sendiri, nilai khusus \t untuk menunjukkan a
karakter tabulasi, atau 0x kemudian nilai heksadesimal dibaca sebagai kode ASCII untuk
karakter.
Karakter ini digunakan sebagai pembatas saat membaca data, dengan cara yang mirip dengan
PostgreSQL COPY .
· nol
Mengambil string yang dikutip sebagai argumen (tanda kutip dapat berupa tanda kutip ganda atau tunggal
tanda kutip) dan menggunakan string itu sebagai NULL representasi dalam data.
Ini mirip dengan nol COPY pilihan di PostgreSQL.
· memotong
Saat opsi ini dicantumkan, pgloader mengeluarkan a MEMOTONG perintah terhadap PostgreSQL
tabel target sebelum membaca file data.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· melewatkan Header
Mengambil nilai numerik sebagai argumen. Perintahkan pgloader untuk melewati banyak baris di
awal dari file masukan.
LOAD DBF
Perintah ini menginstruksikan pgloader untuk memuat data dari a DBF mengajukan. Berikut contohnya:
BUAT DBF
DARI http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/reg2013.dbf
KE postgresql://user@localhost/dbname
DENGAN truncate, buat tabel;
dbf perintah format menerima klausa dan opsi berikut:
· DARI
Nama file tempat memuat data. Ini mendukung file lokal, URL HTTP, dan zip
file yang berisi satu file dbf dengan nama yang sama. Ambil file zip seperti itu dari
Alamat HTTP tentu saja didukung.
· DENGAN
Saat memuat dari a DBF file, opsi berikut didukung:
· memotong
Saat opsi ini dicantumkan, pgloader mengeluarkan a MEMOTONG perintah terhadap PostgreSQL
tabel target sebelum membaca file data.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· membuat tabel
Ketika opsi ini terdaftar, pgloader membuat tabel menggunakan data meta yang ditemukan di
itu DBF file, yang harus berisi daftar bidang dengan tipe datanya. Sebuah standar
konversi tipe data dari DBF ke PostgreSQL selesai.
· tabel nama
Opsi ini mengharapkan sebagai nilainya nama tabel yang mungkin memenuhi syarat untuk dibuat.
LOAD IXF
Perintah ini menginstruksikan pgloader untuk memuat data dari IBM IXF mengajukan. Berikut contohnya:
BEBAN IXF
DARI data/nsitra.test1.ixf
KE postgresql:///pgloader?nsitra.test1
DENGAN truncate, buat tabel
SEBELUM LOAD LAKUKAN
$$ buat skema jika tidak ada nsitra; $$,
$$ drop tabel jika ada nsitra.test1; $$;
ixf perintah format menerima klausa dan opsi berikut:
· DARI
Nama file tempat memuat data. Ini mendukung file lokal, URL HTTP, dan zip
file yang berisi file ixf tunggal dengan nama yang sama. Ambil file zip seperti itu dari
Alamat HTTP tentu saja didukung.
· DENGAN
Saat memuat dari a IXF file, opsi berikut didukung:
· memotong
Saat opsi ini dicantumkan, pgloader mengeluarkan a MEMOTONG perintah terhadap PostgreSQL
tabel target sebelum membaca file data.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· membuat tabel
Ketika opsi ini terdaftar, pgloader membuat tabel menggunakan data meta yang ditemukan di
itu DBF file, yang harus berisi daftar bidang dengan tipe datanya. Sebuah standar
konversi tipe data dari DBF ke PostgreSQL selesai.
· tabel nama
Opsi ini mengharapkan sebagai nilainya nama tabel yang mungkin memenuhi syarat untuk dibuat.
LOAD Arsip
Perintah ini menginstruksikan pgloader untuk memuat data dari satu atau lebih file yang terdapat dalam sebuah
Arsip. Saat ini satu-satunya format arsip yang didukung adalah ZIP, dan arsipnya mungkin
diunduh dari HTTP URL.
Berikut contohnya:
BUAT ARSIP
DARI /Users/dim/Downloads/GeoLiteCity-latest.zip
KE postgresql:///ip4r
SEBELUM LOAD
LAKUKAN $$ buat ekstensi jika tidak ada ip4r; $$,
$$ buat skema jika tidak ada geolite; $$,
EKSEKUSI geolite.sql´
MUAT CSV
DARI PENCOCOKAN NAMA FILE ~/GeoLiteCity-Location.csv/
DENGAN ENCODING iso-8859-1
(
lokasi,
negara,
wilayah nol jika kosong,
kota nol jika kosong,
kode pos null jika kosong,
Garis Lintang,
garis bujur,
metroCode null jika kosong,
kode area null jika kosong
)
KE postgresql:///ip4r?geolite.location
(
locid, negara, wilayah, kota, Kodepos,
titik lokasi menggunakan (format nil "(~a,~a)" bujur lintang),
metroCode,Kode area
)
DENGAN lewati header = 2,
bidang opsional tertutup oleh "´,
bidang lolos dengan tanda kutip ganda,
bidang diakhiri oleh ,´
DAN LOAD CSV
DARI PENCOCOKAN NAMA FILE ~/GeoLiteCity-Blocks.csv/
DENGAN ENCODING iso-8859-1
(
startIpNum, endIpNum, locId
)
KE postgresql:///ip4r?geolite.blocks
(
iprange ip4r menggunakan (ip-range startIpNum endIpNum),
lokasi
)
DENGAN lewati header = 2,
bidang opsional tertutup oleh "´,
bidang lolos dengan tanda kutip ganda,
bidang diakhiri oleh ,´
AKHIRNYA LAKUKAN
$$ buat indeks blocks_ip4r_idx di geolite.blocks menggunakan Gist(iprange); $$;
arsip perintah menerima klausa dan opsi berikut:
· DARI
Nama file atau HTTP URI tempat memuat data. Saat diberi URL HTTP, tautannya
file akan diunduh secara lokal sebelum diproses.
Jika file tersebut adalah zip file, utilitas baris perintah membuka ritsleting digunakan untuk memperluas
arsipkan ke dalam file di $TMPDIR, atau / Tmp if $TMPDIR tidak disetel atau disetel ke yang tidak ada
direktori.
Kemudian perintah berikut digunakan dari direktori tingkat atas tempat arsip
telah diperluas.
· memerintah [ DAN memerintah ... ]
Serangkaian perintah terhadap isi arsip, saat ini saja
CSV,TETAP dan DBF perintah didukung.
Perhatikan bahwa perintah mendukung klausa DARI NAMA FILE SESUAI yang memungkinkan
pgloader perintah untuk tidak bergantung pada nama yang tepat dari direktori arsip.
Klausa yang sama juga dapat diterapkan ke beberapa file dengan menggunakan ejaan DARI SEMUA
NAMA FILE SESUAI dan ekspresi reguler.
Seluruh sesuai klausa harus mengikuti aturan berikut:
DARI [ SEMUA NAMA FILE | [ PERTAMA ] NAMA FILE ] COCOK
· AKHIRNYA DO
Kueri SQL untuk dijalankan setelah data dimuat, seperti MEMBUAT INDEKS.
LOAD MYSQL DATABASE
Perintah ini menginstruksikan pgloader untuk memuat data dari koneksi database. Satu-satunya
sumber database yang didukung saat ini MySQL, dan pgloader mendukung konversi secara dinamis
skema database sumber dan bangunan indeks.
Serangkaian aturan casting default disediakan dan mungkin kelebihan beban dan ditambahkan oleh
perintah.
Berikut contohnya:
MUAT DATABASE
DARI mysql:// Root@localhost/sakila
KE postgresql://localhost:54393/sakila
DENGAN menyertakan drop, membuat tabel, membuat indeks, mengatur ulang urutan
SET maintenance_work_mem ke 128MB´,
work_mem ke 12MB´,
cari_path ke sakila
CAST ketik datetime ke timestamptz drop default drop not null menggunakan zero-dates-to-null,
ketik tanggal drop bukan null drop default menggunakan zero-dates-to-null,
-- ketik tinyint ke boolean menggunakan tinyint-to-boolean,
ketik tahun ke bilangan bulat
MATERIALISASI TAMPILAN film_list, staff_list
-- TERMASUK HANYA PENCOCOKAN NAMA TABEL ~/film/, aktor´
-- TIDAK TERMASUK PENCOCOKAN NAMA TABEL ~
-- PENCOCOKAN NAMA TABEL DECODING ~/kacau/, ~/pengkodean/ SEBAGAI utf8
SEBELUM LOAD LAKUKAN
$$ buat skema jika tidak ada sakila; $$;
Database perintah menerima klausa dan opsi berikut:
· DARI
Harus berupa URL koneksi yang menunjuk ke database MySQL. Saat ini hanya MySQL yang
didukung sebagai sumber pgloader.
Jika koneksi URI berisi nama tabel, maka hanya tabel ini yang dimigrasikan
MySQL ke PostgreSQL.
· DENGAN
Saat memuat dari a MySQL database, opsi berikut didukung, dan:
kesalahan DENGAN klausa adalah: tidak memotong, membuat tabel, memasukkan menjatuhkan, membuat indeks, ulang
urutan, asing kunci-kunci, huruf kecil pengidentifikasi.
DENGAN pilihan:
· memasukkan menjatuhkan
Ketika opsi ini terdaftar, pgloader menjatuhkan semua tabel di target PostgreSQL
database yang namanya muncul di database SQLite. Opsi ini memungkinkan untuk menggunakan
perintah yang sama beberapa kali berturut-turut sampai Anda mengetahui semua opsi, mulai
otomatis dari lingkungan yang bersih. Harap dicatat bahwa RIAM digunakan untuk memastikan
bahwa tabel dijatuhkan bahkan jika ada kunci asing yang menunjuk ke sana. Ini
tepatnya apa memasukkan menjatuhkan dimaksudkan untuk dilakukan: jatuhkan semua tabel target dan buat ulang
Mereka.
Perhatian besar harus diambil saat menggunakan memasukkan menjatuhkan, karena akan mengalir ke semua
objek yang mereferensikan tabel target, mungkin termasuk tabel lain yang tidak
sedang dimuat dari sumber DB.
· memasukkan tidak menjatuhkan
Saat opsi ini dicantumkan, pgloader tidak akan menyertakan apa pun DROP pernyataan saat memuat
data.
· memotong
Ketika opsi ini terdaftar, pgloader mengeluarkan MEMOTONG perintah terhadap masing-masing
Tabel PostgreSQL sebelum memuat data ke dalamnya.
· tidak memotong
Ketika opsi ini terdaftar, pgloader tidak mengeluarkan MEMOTONG perintah.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· membuat tabel
Ketika opsi ini terdaftar, pgloader membuat tabel menggunakan data meta yang ditemukan di
itu MySQL file, yang harus berisi daftar bidang dengan tipe datanya. Sebuah standar
konversi tipe data dari DBF ke PostgreSQL selesai.
· membuat tidak tabel
Ketika opsi ini terdaftar, pgloader melewatkan pembuatan tabel sebelum memuat data,
tabel target harus sudah ada.
· membuat indeks
Ketika opsi ini terdaftar, pgloader mendapatkan definisi dari semua indeks yang ditemukan di
database MySQL dan buat kumpulan definisi indeks yang sama terhadap PostgreSQL
database.
· membuat tidak indeks
Ketika opsi ini terdaftar, pgloader melompati pembuatan indeks.
· menyatukan indeks nama, memelihara indeks nama
Nama indeks MySQL unik per-tabel sedangkan dalam nama indeks PostgreSQL harus
unik per-skema. Default untuk pgloader adalah mengubah nama indeks dengan awalan
dengan idx_OID dimana OID adalah pengidentifikasi numerik internal dari tabel yang indeksnya
dibangun melawan.
Dalam beberapa kasus seperti ketika DDL sepenuhnya diserahkan ke kerangka kerja, itu mungkin masuk akal
bagi pgloader untuk menahan diri dari menangani nama unik indeks, yang dicapai dengan menggunakan
itu memelihara indeks nama .
Standarnya adalah untuk menyatukan indeks nama.
Bahkan saat menggunakan opsi memelihara indeks nama, indeks kunci utama MySQL bernama
"PRIMARY" akan mendapatkan nama mereka yang unik. Gagal melakukannya akan mencegah yang utama
kunci yang akan dibuat lagi di PostgreSQL di mana nama indeks harus unik per
skema.
· asing kunci-kunci
Ketika opsi ini terdaftar, pgloader mendapatkan definisi dari semua kunci asing
ditemukan di database MySQL dan buat kumpulan definisi kunci asing yang sama terhadap
database PostgreSQL.
· tidak asing kunci-kunci
Saat opsi ini dicantumkan, pgloader melompati pembuatan kunci asing.
· ulang urutan
Ketika opsi ini terdaftar, pada akhir pemuatan data dan setelah indeks memiliki
semua telah dibuat, pgloader mengatur ulang semua urutan PostgreSQL yang dibuat ke saat ini
nilai maksimum kolom tempat mereka dilampirkan.
Opsi skema hanya dan data hanya tidak memiliki efek pada opsi ini.
· ulang tidak urutan
Ketika opsi ini terdaftar, pgloader melompati urutan pengaturan ulang setelah memuat.
Opsi skema hanya dan data hanya tidak memiliki efek pada opsi ini.
· huruf kecil pengidentifikasi
Ketika opsi ini terdaftar, pgloader mengonversi semua pengidentifikasi MySQL (nama tabel,
nama indeks, nama kolom) ke huruf kecil, kecuali untuk PostgreSQL dilindungi kata kunci.
PostgreSQL dilindungi kata kunci ditentukan secara dinamis dengan menggunakan sistem
fungsi pg_get_kata kunci().
· mengutip pengidentifikasi
Ketika opsi ini terdaftar, pgloader mengutip semua pengidentifikasi MySQL sehingga kasusnya
dihormati. Perhatikan bahwa Anda kemudian harus melakukan hal yang sama di aplikasi Anda
kueri kode.
· skema hanya
Ketika opsi ini terdaftar, pgloader menahan diri untuk tidak memigrasikan data. Perhatikan bahwa
skema dalam konteks ini mencakup indeks ketika opsi membuat indeks memiliki
telah terdaftar.
· data hanya
Ketika opsi ini terdaftar pgloader hanya mengeluarkan COPY pernyataan, tanpa melakukan apapun
pengolahan lainnya.
· CAST
Klausa pemeran memungkinkan untuk menentukan aturan casting khusus, baik untuk membebani default
aturan casting atau untuk mengubahnya dengan kasus-kasus khusus.
Aturan casting diharapkan mengikuti salah satu bentuk:
Tipe [ ... ] ke [ ... ]
kolom . [ ] ke ...
Itu mungkin untuk pengecoran memerintah untuk mencocokkan dengan tipe data MySQL atau melawan a
diberikan kolom nama dalam diberikan tabel nama. Fleksibilitas itu memungkinkan untuk mengatasi kasus-kasus di mana
jenis kecil mungkin telah digunakan sebagai boolean dalam beberapa kasus tetapi sebagai kecil in
lainnya
pengecoran aturan diterapkan secara berurutan, pertandingan pertama mencegah aturan berikut menjadi
diterapkan, dan aturan yang ditentukan pengguna dievaluasi terlebih dahulu.
Penjaga yang didukung adalah:
· ketika kegagalan nilai
Aturan casting hanya diterapkan terhadap kolom MySQL dari jenis sumber yang memiliki
diberikan nilai, yang harus berupa string kutip tunggal atau kutip ganda.
· ketika typemod ekspresi
Aturan casting hanya diterapkan pada kolom MySQL dari tipe sumber yang memiliki a
typemod nilai yang cocok dengan yang diberikan typemod ekspresi. itu typemod dipisahkan menjadi
ketelitian dan skala komponen.
Contoh aturan pemeran menggunakan a typemod penjaga:
ketik char ketika (= presisi 1) untuk char keep typemod
Ekspresi ini menampilkan MySQL tangki(1) kolom ke kolom tipe PostgreSQL tangki(1) sementara
memungkinkan untuk kasus umum karakter(N) akan dikonversi oleh aturan pemeran default menjadi a
Jenis PostgreSQL varchar(N).
· dengan tambahan kenaikan_otomatis
Aturan casting hanya diterapkan pada kolom MySQL yang memiliki tambahan kolom
kenaikan_otomatis set opsi, sehingga memungkinkan untuk menargetkan mis serial daripada
bilangan bulat.
Perilaku pencocokan default, ketika opsi ini tidak disetel, adalah mencocokkan kedua kolom
dengan definisi ekstra dan tanpa.
Ini berarti bahwa jika Anda ingin menerapkan aturan casting yang menargetkan juga serial or
bilangan bulat dari kecil definisi tergantung pada kenaikan_otomatis sedikit tambahan
informasi dari MySQL, maka Anda perlu mengeja dua aturan casting sebagai berikut:
ketik smallint dengan tambahan auto_increment
untuk serial drop typemod tetap default keep not null,
ketik smallint
untuk integer drop typemod tetap default tetap tidak nol
Opsi casting yang didukung adalah:
· menjatuhkan kegagalan, menjaga kegagalan
Ketika pilihan menjatuhkan kegagalan terdaftar, pgloader menjatuhkan ekspresi default yang ada
di database MySQL untuk kolom tipe sumber dari MEMBUAT TABEL pernyataan
itu menghasilkan.
Ejaannya menjaga kegagalan secara eksplisit mencegah perilaku itu dan dapat digunakan untuk
membebani aturan casting default.
· menjatuhkan tidak nol, menjaga tidak nol
Ketika pilihan menjatuhkan tidak nol terdaftar, pgloader menjatuhkan semua yang ada JANGAN NULL
batasan yang terkait dengan tipe data MySQL sumber yang diberikan saat membuat tabel
dalam database PostgreSQL.
Ejaannya menjaga tidak nol secara eksplisit mencegah perilaku itu dan dapat digunakan untuk
membebani aturan casting default.
· menjatuhkan typemod, menjaga typemod
Ketika pilihan menjatuhkan typemod terdaftar, pgloader menjatuhkan semua yang ada typemod definisi
(misalnya ketelitian dan skala) dari definisi tipe data yang ditemukan di kolom MySQL dari
jenis sumber ketika membuat tabel di database PostgreSQL.
Ejaannya menjaga typemod secara eksplisit mencegah perilaku itu dan dapat digunakan untuk
membebani aturan casting default.
· menggunakan
Opsi ini menggunakan argumen tunggalnya sebagai nama fungsi yang dapat ditemukan di
pgloader.transformasi Paket Lisp umum. Lihat di atas untuk detailnya.
Dimungkinkan untuk menambah aturan pemeran default (seperti aturan yang berlaku terhadap ENUM
tipe data misalnya) dengan a transformasi fungsi dengan menghilangkan sepenuhnya mengetik
bagian dari aturan casting, seperti pada contoh berikut:
kolom enumerate.foo menggunakan string-kosong-ke-null
· MEWUJUDKAN PANDANGAN
Klausa ini memungkinkan Anda untuk menerapkan pemrosesan data khusus di sumber data dengan
menyediakan a melihat definisi terhadap pgloader mana yang akan menanyakan data. Ini bukan
mungkin untuk hanya memungkinkan untuk polos SQL karena kami ingin tahu banyak tentang yang tepat
tipe data dari setiap kolom yang terlibat dalam output kueri.
Klausa ini mengharapkan daftar definisi tampilan yang dipisahkan koma, masing-masing berupa
nama tampilan yang ada di database Anda atau ekspresi berikut:
nama AS $$ sql pertanyaan $$
nama dan sql pertanyaan akan digunakan dalam MEMBUAT BACA pernyataan di awal
pemuatan data, dan tampilan yang dihasilkan kemudian akan dihapus di akhir data
Memuat.
· MEWUJUDKAN SEMUA PANDANGAN
Perilaku yang sama seperti MEWUJUDKAN PANDANGAN menggunakan daftar tampilan dinamis seperti yang dikembalikan oleh
MySQL daripada meminta pengguna untuk menentukan daftar.
· TERMASUK HANYA TABEL NAMA SESUAI
Perkenalkan daftar nama tabel yang dipisahkan koma atau reguler ekspresi digunakan untuk membatasi
tabel untuk bermigrasi ke sublist.
Contoh:
TERMASUK HANYA NAMA TABEL YANG COCOK ~/film/, aktor´
· TIDAK TERMASUK TABEL NAMA SESUAI
Perkenalkan daftar nama tabel yang dipisahkan koma atau reguler ekspresi digunakan untuk mengecualikan
nama tabel dari migrasi. Filter ini hanya berlaku untuk hasil dari
TERMASUK menyaring.
TIDAK TERMASUK PENCOCOKAN NAMA TABEL ~
· DEKODE TABEL NAMA SESUAI
Perkenalkan daftar nama tabel yang dipisahkan koma atau reguler ekspresi digunakan untuk memaksa
pengkodean untuk digunakan saat memproses data dari MySQL. Jika penyandian data diketahui oleh Anda
berbeda dari ide MySQL tentang hal itu, ini adalah opsi untuk digunakan.
PENCOCOKAN NAMA TABEL DECODING ~/kacau/, ~/pengkodean/ SEBAGAI utf8
Anda dapat menggunakan sebanyak mungkin aturan yang Anda butuhkan, semua dengan penyandian yang mungkin berbeda.
PEMBATASAN
Database perintah saat ini hanya mendukung database sumber MySQL dan memiliki yang berikut:
batasan:
· Tampilan tidak dimigrasikan,
Tampilan pendukung mungkin memerlukan penerapan parser SQL lengkap untuk dialek MySQL
dengan mesin port untuk menulis ulang SQL terhadap PostgreSQL, termasuk mengganti nama
fungsi dan mengubah beberapa konstruksi.
Meskipun secara teori tidak mustahil, jangan menahan napas.
· Pemicu tidak dimigrasi
Kesulitan melakukannya belum dinilai.
· ON UPDATE CURRENT_TIMESTAMP saat ini tidak dimigrasi
Ini cukup sederhana untuk diterapkan, hanya saja belum ada dalam daftar prioritas.
· Dari tipe data geometris, hanya POINT database telah tercakup. Yang lain
seharusnya cukup mudah untuk diimplementasikan sekarang, hanya saja belum selesai.
DEFAULT MySQL CASTING ATURAN
Saat bermigrasi dari MySQL, Aturan Casting berikut disediakan:
nomor:
· ketik int dengan tambahan auto_increment ke serial ketika (<precision 10)
· ketik int dengan tambahan auto_increment ke bigserial ketika (<= 10 presisi)
· ketik int ke int ketika (< presisi 10)
· ketik int ke bigint ketika (<= 10 presisi)
· ketik tinyint dengan auto_increment ekstra ke serial
· ketik smallint dengan auto_increment ekstra ke serial
· ketik mediumint dengan auto_increment ekstra ke serial
· ketik bigint dengan auto_increment ekstra ke serial besar
· ketik tinyint ke boolean ketika (= 1 presisi) menggunakan tinyint-to-boolean
· ketik tinyint ke smallint drop typemod
· ketik smallint ke smallint drop typemod
· ketik mediumint ke integer drop typemod
· ketik integer ke integer drop typemod
· ketik float ke float drop typemod
· ketik bigint ke bigint drop typemod
· ketik double hingga double presisi drop typemod
· ketik numerik ke numerik tetap typemod
· ketik desimal ke desimal tetap typemod
Teks:
· ketik char ke varchar tetap typemod
· ketik varchar ke teks
· ketik tinytext ke teks
· ketik teks ke teks
· ketik mediumtext ke teks
· ketik teks panjang ke teks
Biner:
· ketik biner ke byte
· ketik varbinary ke byte
· ketikkan tinyblob ke byte
· ketik gumpalan ke byte
· ketik mediumblob ke byte
· ketik longblob ke byte
Tanggal:
· ketik datetime ketika default "0000-00-00 00:00:00" dan bukan null ke timestamptz drop not
null drop default menggunakan zero-dates-to-null
· ketik datetime ketika default "0000-00-00 00:00:00" ke timestamptz drop default menggunakan
zero-date-to-null
· ketik stempel waktu ketika default "0000-00-00 00:00:00" dan bukan nol hingga stempel waktu tidak jatuh
null drop default menggunakan zero-dates-to-null
· ketik timestamp ketika default "0000-00-00 00:00:00" ke timestamptz drop default menggunakan
zero-date-to-null
· ketik tanggal ketika default "0000-00-00" ke tanggal jatuhkan default menggunakan nol-tanggal-ke-null
· ketik tanggal sampai saat ini
· ketik datetime ke timestamptz
· ketik stempel waktu ke stempel waktu
· ketik tahun ke tipe penurunan bilangan bulat
Geometris:
· ketik point to point menggunakan pgloader.transforms::convert-mysql-point
Jenis enum dideklarasikan sebaris di MySQL dan secara terpisah dengan a MEMBUAT JENIS perintah di
PostgreSQL, jadi setiap kolom Enum Type dikonversi ke tipe yang dinamai tabel dan
nama kolom didefinisikan dengan label yang sama dalam urutan yang sama.
Ketika definisi jenis sumber tidak cocok dalam aturan casting default atau di
aturan casting yang disediakan dalam perintah, kemudian nama tipe dengan typemod digunakan.
LOAD SQLite DATABASE
Perintah ini menginstruksikan pgloader untuk memuat data dari file SQLite. Penemuan otomatis dari
skema didukung, termasuk pembuatan indeks.
Berikut contohnya:
memuat basis data
dari sqlite:///Users/dim/Downloads/lastfm_tags.db
ke dalam postgresql:///tags
dengan menyertakan drop, membuat tabel, membuat indeks, mengatur ulang urutan
atur work_mem ke 16MB´, maintenance_work_mem ke 512 MB´;
sqlite perintah menerima klausa dan opsi berikut:
· DARI
Jalur atau URL HTTP ke file SQLite, mungkin berupa Zip. file.
· DENGAN
Saat memuat dari a SQLite database, opsi berikut didukung:
Saat memuat dari a SQLite database, opsi berikut didukung, dan:
kegagalan DENGAN klausa adalah: tidak memotong, membuat tabel, memasukkan menjatuhkan, membuat indeks,
ulang urutan, huruf kecil pengidentifikasi, encoding utf-8´.
· memasukkan menjatuhkan
Ketika opsi ini terdaftar, pgloader menjatuhkan semua tabel di target PostgreSQL
database yang namanya muncul di database SQLite. Opsi ini memungkinkan untuk menggunakan
perintah yang sama beberapa kali berturut-turut sampai Anda mengetahui semua opsi, mulai
otomatis dari lingkungan yang bersih. Harap dicatat bahwa RIAM digunakan untuk memastikan
bahwa tabel dijatuhkan bahkan jika ada kunci asing yang menunjuk ke sana. Ini
tepatnya apa memasukkan menjatuhkan dimaksudkan untuk dilakukan: jatuhkan semua tabel target dan buat ulang
Mereka.
Perhatian besar harus diambil saat menggunakan memasukkan menjatuhkan, karena akan mengalir ke semua
objek yang mereferensikan tabel target, mungkin termasuk tabel lain yang tidak
sedang dimuat dari sumber DB.
· memasukkan tidak menjatuhkan
Saat opsi ini dicantumkan, pgloader tidak akan menyertakan apa pun DROP pernyataan saat memuat
data.
· memotong
Ketika opsi ini terdaftar, pgloader mengeluarkan MEMOTONG perintah terhadap masing-masing
Tabel PostgreSQL sebelum memuat data ke dalamnya.
· tidak memotong
Ketika opsi ini terdaftar, pgloader tidak mengeluarkan MEMOTONG perintah.
· menonaktifkan memicu
Ketika opsi ini terdaftar, pgloader mengeluarkan dan MENGUBAH TABEL ... NONAKTIFKAN TRIGGER SEMUA
perintah terhadap tabel target PostgreSQL sebelum menyalin data, lalu perintah
MENGUBAH TABEL ... MEMUNGKINKAN TRIGGER SEMUA sekali COPY dilakukan.
Opsi ini memungkinkan memuat data ke dalam tabel yang sudah ada sebelumnya dengan mengabaikan asing kunci
kendala dan pemicu yang ditentukan pengguna dan dapat mengakibatkan tidak valid asing kunci
kendala setelah data dimuat. Gunakan dengan hati-hati.
· membuat tabel
Ketika opsi ini terdaftar, pgloader membuat tabel menggunakan data meta yang ditemukan di
itu SQLite file, yang harus berisi daftar bidang dengan tipe datanya. Sebuah standar
konversi tipe data dari DBF ke PostgreSQL selesai.
· membuat tidak tabel
Ketika opsi ini terdaftar, pgloader melewatkan pembuatan tabel sebelum memuat data,
tabel target harus sudah ada.
· membuat indeks
Ketika opsi ini terdaftar, pgloader mendapatkan definisi dari semua indeks yang ditemukan di
database SQLite dan buat kumpulan definisi indeks yang sama terhadap
database PostgreSQL.
· membuat tidak indeks
Ketika opsi ini terdaftar, pgloader melompati pembuatan indeks.
· ulang urutan
Ketika opsi ini terdaftar, pada akhir pemuatan data dan setelah indeks memiliki
semua telah dibuat, pgloader mengatur ulang semua urutan PostgreSQL yang dibuat ke saat ini
nilai maksimum kolom tempat mereka dilampirkan.
· ulang tidak urutan
Ketika opsi ini terdaftar, pgloader melompati urutan pengaturan ulang setelah memuat.
Opsi skema hanya dan data hanya tidak memiliki efek pada opsi ini.
· skema hanya
Ketika opsi ini terdaftar, pgloader akan menahan diri untuk tidak memigrasikan data. Catatan
bahwa skema dalam konteks ini menyertakan indeks ketika opsi membuat indeks
telah terdaftar.
· data hanya
Ketika opsi ini terdaftar pgloader hanya mengeluarkan COPY pernyataan, tanpa melakukan apapun
pengolahan lainnya.
· encoding
Opsi ini memungkinkan untuk mengontrol penyandian mana yang akan digunakan untuk mengurai data teks SQLite.
Default ke UTF-8.
· CAST
Klausa pemeran memungkinkan untuk menentukan aturan casting khusus, baik untuk membebani default
aturan casting atau untuk mengubahnya dengan kasus-kasus khusus.
Silakan merujuk ke klausa MySQL CAST untuk detailnya.
· TERMASUK HANYA TABEL NAMA SESUAI
Perkenalkan daftar nama tabel yang dipisahkan koma atau reguler ekspresi digunakan untuk membatasi
tabel untuk bermigrasi ke sublist.
Contoh:
TERMASUK HANYA NAMA TABEL YANG COCOK ~/film/, aktor´
· TIDAK TERMASUK TABEL NAMA SESUAI
Perkenalkan daftar nama tabel yang dipisahkan koma atau reguler ekspresi digunakan untuk mengecualikan
nama tabel dari migrasi. Filter ini hanya berlaku untuk hasil dari
TERMASUK menyaring.
TIDAK TERMASUK PENCOCOKAN NAMA TABEL ~
DEFAULT SQLite CASTING ATURAN
Saat bermigrasi dari SQLite, Aturan Casting berikut disediakan:
nomor:
· ketik tinyint ke smallint
· ketik integer ke bigint
· ketik float to float menggunakan float-to-string
· ketik nyata ke nyata menggunakan float-to-string
· ketik presisi ganda hingga ganda menggunakan float-to-string
· ketik numerik ke numerik menggunakan float-to-string
Teks:
· ketik karakter ke teks drop typemod
· ketik varchar ke text drop typemod
· ketik nvarchar ke text drop typemod
· ketik char to text drop typemod
· ketik nchar ke teks drop typemod
· ketik nvarchar ke text drop typemod
· ketik clob to text drop typemod
Biner:
· ketik gumpalan ke byte
Tanggal:
· ketik datetime ke timestamptz menggunakan sqlite-timestamp-to-timestamp
· ketik timestamp ke timestamptz menggunakan sqlite-timestamp-to-timestamp
· ketik timestamptz ke timestamptz menggunakan sqlite-timestamp-to-timestamp
LOAD MS SQL DATABASE
Perintah ini menginstruksikan pgloader untuk memuat data dari database MS SQL. Penemuan otomatis
skema didukung, termasuk pembuatan indeks, kunci utama dan asing
kendala.
Berikut contohnya:
memuat basis data
dari mssql://user@host/dbname
ke dalam postgresql:///dbname
hanya menyertakan nama tabel seperti GlobalAccount´ dalam skema dbo´
setel work_mem ke 16MB´, maintenance_work_mem ke 512 MB´
sebelum memuat lakukan $$ drop skema jika ada dbo cascade; $$;
mssql.dll perintah menerima klausa dan opsi berikut:
· DARI
String koneksi ke server database MS SQL yang ada yang mendengarkan dan menyambut
koneksi TCP/IP eksternal. Karena pgloader saat ini mendukung driver FreeTDS, untuk
ubah port server, silakan ekspor TDSPORT variabel lingkungan.
· DENGAN
Saat memuat dari a MS SQL database, opsi yang sama seperti saat memuat MySQL Database
didukung. Silakan merujuk ke bagian MySQL. Opsi berikut ditambahkan:
· membuat skema
Ketika opsi ini terdaftar, pgloader membuat skema yang sama seperti yang ditemukan di MS SQL
contoh. Ini adalah default.
· membuat tidak skema
Ketika opsi ini terdaftar, pgloader menahan diri untuk tidak membuat skema apa pun, Anda
kemudian harus memastikan bahwa skema target memang ada.
· CAST
Klausa pemeran memungkinkan untuk menentukan aturan casting khusus, baik untuk membebani default
aturan casting atau untuk mengubahnya dengan kasus-kasus khusus.
Silakan merujuk ke klausa MySQL CAST untuk detailnya.
· TERMASUK HANYA TABEL NAMA SEPERTI ...´ [, ...´] IN SKEMA ...´
Perkenalkan daftar pola nama tabel yang dipisahkan koma yang digunakan untuk membatasi tabel ke
bermigrasi ke sublist. Lebih dari satu klausa tersebut dapat digunakan, mereka akan diakumulasikan
bersama-sama.
Contoh:
hanya termasuk nama tabel lile GlobalAccount´ dalam skema dbo´
· TIDAK TERMASUK TABEL NAMA SEPERTI ...´ [, ...´] IN SKEMA ...´
Perkenalkan daftar pola nama tabel yang dipisahkan koma yang digunakan untuk mengecualikan nama tabel
dari migrasi. Filter ini hanya berlaku untuk hasil dari TERMASUK menyaring.
MENGECUALIKAN NAMA TABEL YANG COCOK LocalAccount´ di skema dbo´
DEFAULT MS SQL CASTING ATURAN
Saat bermigrasi dari MS SQL, Aturan Casting berikut disediakan:
nomor:
· ketik tinyint ke smallint
· ketik float to float menggunakan float-to-string
· ketik nyata ke nyata menggunakan float-to-string
· ketik presisi ganda hingga ganda menggunakan float-to-string
· ketik numerik ke numerik menggunakan float-to-string
· ketik desimal ke numerik menggunakan float-to-string
· ketik uang ke numerik menggunakan float-to-string
· ketik smallmoney ke numerik menggunakan float-to-string
Teks:
· ketik char to text drop typemod
· ketik nchat ke teks drop typemod
· ketik varchar ke text drop typemod
· ketik nvarchar ke text drop typemod
· ketik xml ke teks drop typemod
Biner:
· ketik biner ke byte menggunakan byte-vektor-ke-bytea
· ketik varbinary ke byte menggunakan byte-vektor-ke-bytea
Tanggal:
· ketik datetime ke timestamptz
· ketik datetime2 ke timestamptz
Lain-lain:
· ketik bit ke boolean
· ketik hierarkiid ke byte
· ketik geografi ke byte
· ketik uniqueidentifier ke uuid menggunakan sql-server-uniqueidentifier-to-uuid
TRANSFORMASI FUNGSI
Beberapa tipe data diimplementasikan dengan cara yang cukup berbeda sehingga fungsi transformasi
diperlukan. Fungsi ini harus ditulis dalam Umum pelat dan dicari di
pgloader.transformasi paket.
Beberapa fungsi transformasi default disediakan dengan pgloader, dan Anda dapat menggunakan
--memuat opsi baris perintah untuk memuat dan mengkompilasi file cadel Anda sendiri ke pgloader di
waktu berjalan. Agar fungsi Anda dapat ditemukan, ingatlah untuk memulai file cadel Anda dengan
bentuk berikut:
(dalam paket #:pgloader.transforms)
Fungsi transformasi yang disediakan adalah:
· zero-date-to-null
Ketika tanggal input semuanya nol, kembalikan nol, yang dimuat sebagai PostgreSQL NULL
nilai.
· tanggal-tanpa-pemisah
Berlaku zero-date-to-null kemudian ubah tanggal yang diberikan ke dalam format PostgreSQL
benar-benar akan memproses:
Dalam: "20041002152952"
Out: "2004-10-02 15:29:52"
· waktu-tanpa-pemisah
Ubah waktu yang diberikan menjadi format yang sebenarnya akan diproses oleh PostgreSQL:
Dalam: "08231560"
Keluar: "08:23:15.60"
· tinyint-ke-boolean
Karena MySQL tidak memiliki tipe boolean yang tepat, kecil sering digunakan untuk mengimplementasikannya. Ini
transformasi fungsi 0 untuk Salah dan hal lain untuk benar.
· bit-ke-boolean
Karena MySQL tidak memiliki tipe boolean yang tepat, BIT sering digunakan untuk mengimplementasikannya. Ini
fungsi mengubah vektor bit 1-bit dari 0 untuk f dan nilai lainnya untuk t..
· int-ke-ip
Mengonversi bilangan bulat menjadi representasi titik-titik dari ip4.
Dalam: 18435761
Keluar: "1.25.78.177"
· jangkauan ip
Mengonversi beberapa bilangan bulat yang diberikan sebagai string menjadi rentang ip4.
Dalam: "16825344" "16825599"
Keluar: "1.0.188.0-1.0.188.255"
· konversi-mysql-point
Mengkonversi dari asteks representasi poin di MySQL ke PostgreSQL
perwakilan.
Dalam: "POINT(48.5513589 7.6926827)"
Keluar: "(48.5513589,7.6926827)"
· mengambang-ke-string
Mengubah float Common Lisp menjadi string yang cocok untuk float PostgreSQL:
Dalam: 100.0d0
Keluar: "100.0"
· set-ke-enum-array
Mengonversi string yang mewakili SET MySQL menjadi Array PostgreSQL dari nilai Enum dari
set.
Dalam: "foo, bar"
Keluar: "{foo,bar}"
· string-kosong-ke-null
Ubah string kosong menjadi nol.
· pemangkasan kanan
Hapus spasi putih di akhir string.
· byte-vektor-ke-bytea
Ubah array sederhana dari byte yang tidak ditandatangani ke Format Hex byte PostgreSQL
representasi seperti yang didokumentasikan di
http://www.postgresql.org/docs/9.3/interactive/datatype-binary.html
· sqlite-cap waktu-ke-cap waktu
Sistem tipe SQLite cukup menarik, jadi atasi di sini untuk menghasilkan stempel waktu
literal seperti yang diharapkan oleh PostgreSQL. Itu mencakup tahun hanya pada 4 digit, 0 tanggal untuk
null, dan string tanggal yang tepat.
· sql-server-uniqueidentifier-ke-uuid
Driver SQL Server menerima data untuk pengidentifikasi tipe unik sebagai vektor byte yang kami
maka perlu mengonversi ke string UUID untuk format input PostgreSQL COPY untuk diproses.
· unix-cap waktu-ke-cap waktu
Mengonversi stempel waktu unix (jumlah detik yang berlalu sejak awal 1970) menjadi a
format cap waktu PostgreSQL yang tepat.
LOAD PESAN
Perintah ini masih eksperimental dan memungkinkan menerima pesan melalui UDP menggunakan syslog
seperti format, dan, tergantung pada pencocokan aturan, memuat bagian-bagian bernama dari aliran data ke dalam
meja tujuan.
BUAT PESAN
DARI syslog://localhost:10514/
KETIKA COCOK rsyslog-msg DI Apache
MENDAFTAR stempel waktu, ip, istirahat
KE postgresql://localhost/db?logs.apache
SET guc_1 = nilai´, guc_2 = nilai lain´
KETIKA COCOK rsyslog-msg DI orang lain
MENDAFTAR stempel waktu, nama aplikasi, data
KE postgresql://localhost/db?logs.others
SET guc_1 = nilai´, guc_2 = nilai lain´
DENGAN Apache = rsyslog
DATA = IP REST
IP = 1*3DIGIT "." 1*3DIGIT "."1*3DIGIT "."1*3DIGIT
istirahat = ~ /.*/
DENGAN orang lain = rsyslog;
Karena perintahnya masih eksperimental, opsi dapat diubah di masa mendatang dan
detail tidak didokumentasikan.
Gunakan pgloader online menggunakan layanan onworks.net