ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

OnWorks favicon

pgloader - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ pgloader ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ pgloader ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


pgloader - ຕົວໂຫຼດຂໍ້ມູນ PostgreSQL

ສະຫຼຸບສັງລວມ


pgloader [ ] [ ]...
pgloader [ ] ເປົ້າໝາຍແຫຼ່ງ

ລາຍລະອຽດ


pgloader ໂຫຼດຂໍ້ມູນຈາກແຫຼ່ງຕ່າງໆເຂົ້າໄປໃນ PostgreSQL. ມັນສາມາດຫັນປ່ຽນຂໍ້ມູນມັນ
ອ່ານໃນການບິນແລະສົ່ງ SQL ດິບກ່ອນແລະຫຼັງຈາກການໂຫຼດ. ມັນໃຊ້ COPY
ໂປຣໂຕຄໍ PostgreSQL ເພື່ອຖ່າຍທອດຂໍ້ມູນເຂົ້າໄປໃນເຊີບເວີ, ແລະຈັດການຂໍ້ຜິດພາດໂດຍການຕື່ມ a
ຄູ່ຂອງ ປະຕິເສດ.dat ແລະ reject.log ໄຟລ໌.

pgloader ດໍາເນີນການໂດຍໃຊ້ຄໍາສັ່ງທີ່ອ່ານຈາກໄຟລ໌:

pgloader commands.load

ຫຼືໂດຍການໃຊ້ການໂຕ້ຖຽງແລະທາງເລືອກທັງຫມົດທີ່ສະຫນອງໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ:

pgloader ເປົ້າຫມາຍແຫຼ່ງ

ການໂຕ້ຖຽງ


ການໂຕ້ຖຽງ pgloader ສາມາດເປັນໄຟລ໌ໂຫຼດໄດ້ຫຼາຍເທົ່າທີ່ຕ້ອງການ, ຫຼືການເຊື່ອມຕໍ່ສອງສາມອັນ
ຊ່ອຍແນ່ໃສ່ໄຟລ໌ປ້ອນຂໍ້ມູນສະເພາະ.

ແຫຼ່ງຂໍ້ມູນ ການຕິດຕໍ່ ຄັກ
ຮູບ​ແບບ​ສະ​ຕ​ຣິງ​ການ​ເຊື່ອມ​ຕໍ່​ແຫຼ່ງ​ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

format:///absolute/path/to/file.ext
format://./relative/path/to/file.ext

ບ່ອນທີ່ຮູບແບບອາດຈະເປັນຫນຶ່ງໃນ csv, ຄົງ, ຄັດລອກ, dbf, db3 or ixf.

db://user:pass@host:port/dbname

ບ່ອນທີ່ db ອາດຈະເປັນຂອງ sqlite, mysql or mssql.

ເມື່ອໃຊ້ຮູບແບບແຫຼ່ງທີ່ອີງໃສ່ໄຟລ໌, pgloader ຍັງສະຫນັບສະຫນູນການດຶງໄຟລ໌ຕົ້ນສະບັບ
ຈາກສະຖານທີ່ http ແລະ decompressing archive ຖ້າຈໍາເປັນ. ໃນກໍລະນີດັ່ງກ່າວນີ້, ມັນເປັນສິ່ງຈໍາເປັນ
ການນໍາໃຊ້ --ປະເພດ ທາງເລືອກທີ່ຈະລະບຸຮູບແບບທີ່ຄາດໄວ້ຂອງໄຟລ໌. ເບິ່ງຕົວຢ່າງ
ຂ້າງລຸ່ມນີ້.

ໃຫ້ສັງເກດວ່າບາງຮູບແບບໄຟລ໌ຮຽກຮ້ອງໃຫ້ມີການອະທິບາຍລາຍລະອຽດການປະຕິບັດບາງຢ່າງເຊັ່ນ:
ຖັນທີ່ຈະອ່ານແລະຕົວຂັ້ນແລະວົງຢືມເມື່ອໂຫລດຈາກ csv.

ສໍາລັບສະຖານະການໂຫຼດທີ່ສັບສົນຫຼາຍ, ທ່ານຈະຕ້ອງຂຽນຄໍາສັ່ງການໂຫຼດເຕັມໃນ
syntax ທີ່ອະທິບາຍຕໍ່ມາໃນເອກະສານນີ້.

ເປົ້າ​ຫມາຍ ການຕິດຕໍ່ ຄັກ
ຮູບ​ແບບ​ການ​ເຊື່ອມ​ຕໍ່​ເປົ້າ​ຫມາຍ​ແມ່ນ​ອະ​ທິ​ບາຍ​ໃນ​ລາຍ​ລະ​ອຽດ​ຕໍ່​ມາ​ໃນ​ເອ​ກະ​ສານ​ນີ້​, ເບິ່ງ​
ພາກສ່ວນເຊື່ອມຕໍ່ String.

OPTIONS


ສອບຖາມຂໍ້ມູນ OPTIONS
ໃຊ້ທາງເລືອກເຫຼົ່ານີ້ໃນເວລາທີ່ທ່ານຕ້ອງການຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີການນໍາໃຊ້ pgloader, ເປັນທາງເລືອກເຫຼົ່ານັ້ນ
ຈະເຮັດໃຫ້ເກີດ pgloader ບໍ່ໃຫ້ໂຫຼດຂໍ້ມູນໃດໆ.

-h, - ຊ່ວຍ
ສະແດງສະຫຼຸບການໃຊ້ຄໍາສັ່ງແລະອອກ.

-V, - ການປ່ຽນແປງ
ສະແດງສະຕຣິງເວີຊັນ pgloader ແລະອອກ.

-E, --list-encodes
ລາຍຊື່ການເຂົ້າລະຫັດທີ່ຮູ້ຈັກໃນ pgloader ລຸ້ນນີ້.

-U, --upgrade-config
ວິເຄາະໄຟລ໌ທີ່ໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງເປັນ pgloader.conf ໄຟລ໌ທີ່ມີ ເລີ່ມ syntax
ທີ່ໃຊ້ຢູ່ໃນ pgloader ເວີຊັ່ນ 2.x, ແລະອອກ syntax ຄໍາສັ່ງໃຫມ່ສໍາລັບ
pgloader ກ່ຽວກັບຜົນຜະລິດມາດຕະຖານ.

ທົ່ວໄປ OPTIONS
ທາງເລືອກເຫຼົ່ານັ້ນແມ່ນຫມາຍເຖິງການປັບ pgloader ພຶດຕິກໍາໃນເວລາໂຫຼດຂໍ້ມູນ.

-v, -- verbose
ເປັນຄຳເວົ້າ.

-q, --ງຽບ
ງຽບ.

-d, --debug
ສະແດງຂໍ້ຄວາມຂໍ້ມູນລະດັບດີບັກ.

-D, --root-dir
ຕັ້ງຄ່າລະບົບການເຮັດວຽກຂອງຮາກ (ຄ່າເລີ່ມຕົ້ນເປັນ "/tmp/pgloader").

-L, --logfile
ຕັ້ງໄຟລ໌ບັນທຶກ pgloader (ຄ່າເລີ່ມຕົ້ນເປັນ "/tmp/pgloader.log").

--log-min-mesages
ລະດັບຕໍ່າສຸດຂອງ verbosity ທີ່ຈໍາເປັນສໍາລັບຂໍ້ຄວາມບັນທຶກເພື່ອເຮັດໃຫ້ມັນເຂົ້າໄປໃນ logfile. ຫນຶ່ງ​ໃນ
ສໍາຄັນ, ບັນທຶກ, ຄວາມຜິດພາດ, ການເຕືອນໄພ, ແຈ້ງການ, ຂໍ້ມູນຫຼືດີບັກ.

--client-min-messages
ລະດັບຕໍ່າສຸດຂອງ verbosity ທີ່ຈໍາເປັນສໍາລັບຂໍ້ຄວາມບັນທຶກເພື່ອເຮັດໃຫ້ມັນໄປ console ໄດ້. ຫນຶ່ງ​ໃນ
ສໍາຄັນ, ບັນທຶກ, ຄວາມຜິດພາດ, ການເຕືອນໄພ, ແຈ້ງການ, ຂໍ້ມູນຫຼືດີບັກ.

-S, -- ສະຫຼຸບ
ຊື່ໄຟລ໌ບ່ອນທີ່ຈະສຳເນົາຜົນສະຫຼຸບ. ເມື່ອພີ່ນ້ອງ, ຊື່ໄຟລ໌ແມ່ນ
ຂະຫຍາຍເຂົ້າໄປໃນ *root-dir*.

ຮູບແບບຂອງຊື່ໄຟລ໌ເລີ່ມຕົ້ນທີ່ຈະເປັນ ມະນຸດ ອ່ານໄດ້. ມັນເປັນໄປໄດ້ທີ່ຈະມີ
ຜົນຜະລິດໃນຮູບແບບທີ່ເປັນມິດກັບເຄື່ອງຈັກເຊັ່ນ: CSV, COPY (ສໍາເນົາຂອງຕົນເອງຂອງ PostgreSQL
format) ຫຼື JSON ໂດຍການລະບຸຊື່ໄຟລ໌ທີ່ມີນາມສະກຸນ resp. csv, .ສຳເນົາ or
.json.

-l , --load-lisp-file
ລະບຸລາຍຊື່ ເອກະສານ ເພື່ອລວບລວມແລະໂຫລດເຂົ້າໄປໃນຮູບພາບ pgloader ກ່ອນທີ່ຈະອ່ານ
ຄໍາສັ່ງ, ອະນຸຍາດໃຫ້ກໍານົດຫນ້າທີ່ການຫັນເປັນພິເສດ. ຫນ້າທີ່ເຫຼົ່ານັ້ນຄວນ
ຖືກກໍານົດໄວ້ໃນ pgloader.transforms ຊຸດ. ທາງເລືອກນີ້ສາມາດປາກົດຫຼາຍກ່ວາ
ເມື່ອຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

-- ການ​ປັບ​ປຸງ​ຕົນ​ເອງ​ :

ລະບຸ ກ ລະບົບ ບ່ອນທີ່ຊອກຫາແຫຼ່ງ pgloader ດັ່ງນັ້ນຫນຶ່ງໃນທໍາອິດທີ່ສຸດ
ສິ່ງທີ່ມັນເຮັດແມ່ນການໂຫຼດແບບໄດນາມິກ (ແລະການລວບລວມລະຫັດເຄື່ອງຈັກ) ອື່ນ
ລຸ້ນຂອງມັນເອງ, ປົກກະຕິແລ້ວເປັນອັນໃໝ່ກວ່າເຊັ່ນ: git checkout ຫຼ້າສຸດ.

ຄໍາສັ່ງ LINE ເທົ່ານັ້ນ ວຽກງານຕ່າງໆ
ທາງ​ເລືອກ​ເຫຼົ່າ​ນັ້ນ​ແມ່ນ​ຫມາຍ​ຄວາມ​ວ່າ​ຈະ​ໄດ້​ຮັບ​ການ​ນໍາ​ໃຊ້​ໃນ​ເວ​ລາ​ທີ່​ການ​ນໍາ​ໃຊ້​ pgloader ຈາກເສັ້ນຄໍາສັ່ງເທົ່ານັ້ນ, ແທນທີ່ຈະ
ກ່ວາການນໍາໃຊ້ໄຟລ໌ຄໍາສັ່ງແລະປະໂຫຍກຄໍາສັ່ງອຸດົມສົມບູນແລະ parser. ໃນກໍລະນີງ່າຍດາຍ, ມັນສາມາດເຮັດໄດ້
ງ່າຍກວ່າທີ່ຈະໃຊ້ ແຫຼ່ງຂໍ້ມູນ ແລະ ເປົ້າ​ຫມາຍ ໂດຍກົງໃນເສັ້ນຄໍາສັ່ງ, ຈາກນັ້ນປັບປ່ຽນ
ການໂຫຼດດ້ວຍຕົວເລືອກເຫຼົ່ານັ້ນ:

· --ກັບ "ທາງເລືອກ":

ອະນຸຍາດໃຫ້ຕັ້ງຄ່າທາງເລືອກຈາກແຖວຄໍາສັ່ງ. ທ່ານສາມາດໃຊ້ຕົວເລືອກນັ້ນໄດ້ຫຼາຍເທື່ອ
ເຈົ້າ​ຕ້ອງ​ການ. ການໂຕ້ຖຽງທາງເລືອກຕ້ອງປະຕິບັດຕາມ ກັບ clause ສໍາລັບປະເພດຂອງແຫຼ່ງຂອງ
ແຫຼ່ງຂໍ້ມູນ ສະເພາະ, ດັ່ງທີ່ໄດ້ອະທິບາຍຕໍ່ມາໃນເອກະສານນີ້.

· --ຕັ້ງ "guc_name='value'"

ອະນຸຍາດໃຫ້ຕັ້ງຄ່າການຕັ້ງຄ່າ PostgreSQL ຈາກແຖວຄໍາສັ່ງ. ໃຫ້ສັງເກດວ່າທາງເລືອກ
parsing ແມ່ນຄືກັນກັບເວລາທີ່ໃຊ້ຈາກ SET ປະໂຫຍກຄໍາສັ່ງ, ໂດຍສະເພາະທ່ານຕ້ອງ
ກວມເອົາຄ່າ guc ດ້ວຍວົງຢືມດຽວ.

· --ພາກສະຫນາມ "... "

ອະນຸຍາດໃຫ້ຕັ້ງຄໍານິຍາມຊ່ອງຂໍ້ມູນແຫຼ່ງ. ຊ່ອງຂໍ້ມູນແມ່ນສະສົມຕາມລໍາດັບທີ່ໃຫ້ໄວ້
ເສັ້ນຄໍາສັ່ງ. ມັນເປັນໄປໄດ້ທີ່ຈະໃຊ້ a --ພາກສະຫນາມ ທາງເລືອກຕໍ່ຊ່ອງຂໍ້ມູນໃນແຫຼ່ງ
ໄຟລ໌, ຫຼືເພື່ອແຍກຄໍານິຍາມຊ່ອງຂໍ້ມູນໂດຍເຄື່ອງໝາຍຈຸດ, ດັ່ງທີ່ເຈົ້າຈະເຮັດໃນ ແລ່ນ
ທົ່ງນາ ອານຸປະໂຫຍດ.

· --ໂຍນ "... "

ອະ​ນຸ​ຍາດ​ໃຫ້​ຕັ້ງ​ກົດ​ລະ​ບຽບ​ການ​ຄາ​ສ​ທ໌​ສະ​ເພາະ​ສໍາ​ລັບ​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ໄດ້​.

· --ປະເພດ csv|ແກ້ໄຂ|db3|ixf|sqlite|mysql|mssql

ອະນຸຍາດໃຫ້ບັງຄັບປະເພດແຫຼ່ງ, ໃນກໍລະນີທີ່ ແຫຼ່ງຂໍ້ມູນ parsing ບໍ່ເປັນທີ່ພໍໃຈ.

· --ການເຂົ້າລະຫັດ

ກໍານົດການເຂົ້າລະຫັດຂອງໄຟລ໌ແຫຼ່ງທີ່ຈະໂຫລດຂໍ້ມູນຈາກ.

· -- ກ່ອນ

parse ຊື່ໄຟລ໌ທີ່ໃຫ້ສໍາລັບການສອບຖາມ SQL ແລະດໍາເນີນການໃຫ້ເຂົາເຈົ້າກັບຖານຂໍ້ມູນເປົ້າຫມາຍກ່ອນ
ກຳລັງໂຫຼດຂໍ້ມູນຈາກແຫຼ່ງທີ່ມາ. ຄໍາຖາມຖືກວິເຄາະໂດຍ pgloader ຕົວຂອງມັນເອງ: ພວກເຂົາຕ້ອງການ
ຈະຖືກຢຸດໂດຍເຄິ່ງຈໍ້າສອງເມັດ (;) ແລະໄຟລ໌ອາດຈະປະກອບມີ \i or \ir ຄໍາສັ່ງທີ່ຈະ
ປະກອບດ້ວຍ ໄຟລ໌ອື່ນ.

· -- ຫຼັງຈາກ

parse ຊື່ໄຟລ໌ທີ່ໃຫ້ສໍາລັບການສອບຖາມ SQL ແລະດໍາເນີນການໃຫ້ເຂົາເຈົ້າກັບຖານຂໍ້ມູນເປົ້າຫມາຍຫຼັງຈາກນັ້ນ
ມີການໂຫຼດຂໍ້ມູນຈາກແຫຼ່ງ. ຄໍາຖາມຖືກວິເຄາະດ້ວຍວິທີດຽວກັນກັບ
ໄດ້ -- ກ່ອນ ທາງເລືອກ, ເບິ່ງຂ້າງເທິງ.

ເພີ່ມເຕີມ ດີບັກ ຂໍ້ມູນ
ເພື່ອໃຫ້ໄດ້ຮັບຈໍານວນສູງສຸດຂອງຂໍ້ມູນ debug, ທ່ານສາມາດນໍາໃຊ້ທັງສອງ -- verbose ແລະ
--debug switches ໃນເວລາດຽວກັນ, ເຊິ່ງເທົ່າກັບເວົ້າ --client-min-messages
ຂໍ້ມູນ. ຫຼັງ​ຈາກ​ນັ້ນ​, ຂໍ້​ຄວາມ​ບັນ​ທຶກ​ຈະ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ຂໍ້​ມູນ​ທີ່​ກໍາ​ລັງ​ດໍາ​ເນີນ​ການ​, ໃນ​ກໍ​ລະ​ນີ​ທີ່​
ລະຫັດມີການສະຫນັບສະຫນູນຢ່າງຊັດເຈນສໍາລັບມັນ.

ການນໍາໃຊ້ ຕົວຢ່າງ


ກວດເບິ່ງຕົວເລືອກແຖວຄໍາສັ່ງ ແລະສະບັບຂອງ pgloader:

pgloader --help
pgloader --version

ກໍາລັງໂຫລດ ຈາກ a ສະລັບສັບຊ້ອນ ຄໍາສັ່ງ
ໃຊ້ໄຟລ໌ຄໍາສັ່ງເປັນການໂຕ້ຖຽງຄໍາສັ່ງ pgloader, pgloader ຈະແຍກໄຟລ໌ນັ້ນແລະ
ປະຕິບັດຄໍາສັ່ງທີ່ພົບເຫັນຢູ່ໃນມັນ:

pgloader --verbose ./test/csv-districts.load

CSV
ໂຫຼດຂໍ້ມູນຈາກໄຟລ໌ CSV ເຂົ້າໄປໃນຕາຕະລາງທີ່ມີຢູ່ແລ້ວໃນຖານຂໍ້ມູນຂອງທ່ານ:

pgloader --type csv \
--field ID --field field \
-- ດ້ວຍການຫຍໍ້ \
-- ກັບ "ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ ','" \
./test/data/matching-1.csv \
postgres:///pgloader?tablename=matching

ໃນຕົວຢ່າງນັ້ນການໂຫຼດທັງຫມົດແມ່ນຂັບເຄື່ອນຈາກເສັ້ນຄໍາສັ່ງ, ຂ້າມຄວາມຕ້ອງການ
ການຂຽນຄໍາສັ່ງໃນ syntax ຄໍາສັ່ງ pgloader ທັງຫມົດ. ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກວ່າບໍ່ມີຄໍາສັ່ງ,
ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ​ທີ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ສະ​ຫນອງ​ໃຫ້​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ການ​ນໍາ​ໃຊ້​ --ປະເພດ ແລະ
--ພາກສະຫນາມ ແລະ --ກັບ switches

ສໍາລັບເອກະສານກ່ຽວກັບ syntaxes ທີ່ມີຢູ່ສໍາລັບການ --ພາກສະຫນາມ ແລະ --ກັບ ສະຫຼັບ, ກະລຸນາ
ອ້າງອີງໃສ່ພາກສ່ວນ CSV ຕໍ່ມາໃນໜ້າ man.

ໃຫ້ສັງເກດວ່າ PostgreSQL URI ປະກອບມີເປົ້າຫມາຍ ຊື່ຕາຕະລາງ.

ອ່ານ ຈາກ STDIN
ແຫຼ່ງ pgloader ທີ່ອີງໃສ່ໄຟລ໌ສາມາດຖືກໂຫລດຈາກວັດສະດຸປ້ອນມາດຕະຖານ, ດັ່ງຕໍ່ໄປນີ້
ຍົກຕົວຢ່າງ:

pgloader --type csv \
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong" \
--with "ຂ້າມ header = 1" \
-- ກັບ "ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ '\t'" \
- \
postgresql:///pgloader?districts_longlat \
< test/data/2013_Gaz_113CDs_national.txt

ຂີດ (-) character as a source ຖືກນໍາໃຊ້ເພື່ອຫມາຍຄວາມວ່າ ມາດຕະຖານ ການປ້ອນຂໍ້ມູນ, ຕາມປົກກະຕິໃນ Unix
ເສັ້ນຄໍາສັ່ງ. ມັນເປັນໄປໄດ້ທີ່ຈະຖ່າຍທອດເນື້ອໃນທີ່ຖືກບີບອັດໃສ່ pgloader ດ້ວຍເຕັກນິກນີ້,
ການນໍາໃຊ້ທໍ່ Unix:

gunzip -c source.gz | pgloader --type csv ... - pgsql:///target?foo

ກໍາລັງໂຫລດ ຈາກ CSV ມີ ໂດຍຜ່ານການ HTTP
ຄໍາສັ່ງດຽວກັນກັບພຽງແຕ່ຂ້າງເທິງຍັງສາມາດດໍາເນີນການໄດ້ຖ້າຫາກວ່າໄຟລ໌ CSV ເກີດຂຶ້ນທີ່ຈະພົບເຫັນຢູ່ໃນ a
ສະຖານທີ່ HTTP ໄລຍະໄກ:

pgloader --type csv \
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong" \
--with "ຂ້າມ header = 1" \
-- ກັບ "ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ '\t'" \
http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt \
postgresql:///pgloader?districts_longlat

ບາງທາງເລືອກເພີ່ມເຕີມຕ້ອງຖືກໃຊ້ໃນກໍລະນີນີ້, ເພາະວ່າໄຟລ໌ມີສ່ວນຫົວແຖວດຽວ
(ໂດຍທົ່ວໄປແລ້ວຊື່ຖັນນັ້ນ, ອາດຈະເປັນແຈ້ງການລິຂະສິດ). ນອກຈາກນັ້ນ, ໃນກໍລະນີດັ່ງກ່າວ, ພວກເຮົາ
ລະບຸຊ່ອງຂໍ້ມູນທັງໝົດເຂົ້າໃນອັນດຽວ --ພາກສະຫນາມ ການໂຕ້ຖຽງທາງເລືອກ.

ອີກເທື່ອຫນຶ່ງ, ສາຍເຊື່ອມຕໍ່ເປົ້າຫມາຍ PostgreSQL ຕ້ອງມີ ຊື່ຕາຕະລາງ ທາງ​ເລືອກ​ແລະ​ທ່ານ​
ຕ້ອງຮັບປະກັນວ່າຕາຕະລາງເປົ້າຫມາຍມີຢູ່ແລະອາດຈະເຫມາະກັບຂໍ້ມູນ. ນີ້ແມ່ນຄໍາສັ່ງ SQL
ໃຊ້​ໃນ​ຕົວ​ຢ່າງ​ນັ້ນ​ໃນ​ກໍ​ລະ​ນີ​ທີ່​ທ່ານ​ຕ້ອງ​ການ​ທົດ​ລອງ​ມັນ​ຕົວ​ທ່ານ​ເອງ​:

ສ້າງຕາຕະລາງ districts_longlat
(
ຂໍ້ຄວາມ usps,
ຂໍ້​ຄວາມ geoid​,
aland bigint,
ນ້ໍາໃຫຍ່,
aland_sqmi ຄວາມແມ່ນຍໍາສອງເທົ່າ,
awater_sqmi ຄວາມແມ່ນຍໍາສອງເທົ່າ,
intptlat ຄວາມແມ່ນຍໍາສອງເທົ່າ,
intptlong ຄວາມແມ່ນຍໍາສອງເທົ່າ
);

ຍັງສັງເກດເຫັນວ່າຄໍາສັ່ງດຽວກັນຈະເຮັດວຽກຕໍ່ກັບສະບັບທີ່ເກັບໄວ້ຂອງຂໍ້ມູນດຽວກັນ,
ຕົວຢ່າງ: http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz.

ສຸດທ້າຍ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າ pgloader ທໍາອິດດຶງເນື້ອຫາຈາກ HTTP URL
ມັນເຂົ້າໄປໃນໄຟລ໌ທ້ອງຖິ່ນ, ຫຼັງຈາກນັ້ນຂະຫຍາຍການເກັບຮັກສາເມື່ອມັນຖືກຮັບຮູ້ວ່າເປັນຫນຶ່ງ, ແລະພຽງແຕ່ຫຼັງຈາກນັ້ນ
ປະມວນຜົນໄຟລ໌ທີ່ຂະຫຍາຍຢູ່ໃນທ້ອງຖິ່ນ.

ໃນ​ບາງ​ກໍ​ລະ​ນີ​, ບໍ່​ວ່າ​ຈະ​ເນື່ອງ​ຈາກ​ວ່າ pgloader ບໍ່​ມີ​ການ​ສະ​ຫນັບ​ສະ​ຫນູນ​ໂດຍ​ກົງ​ສໍາ​ລັບ​ຮູບ​ແບບ​ການ​ເກັບ​ຂອງ​ທ່ານ​ຫຼື​
ບາງທີເນື່ອງຈາກວ່າການຂະຫຍາຍການຈັດເກັບບໍ່ເປັນໄປໄດ້ໃນສະພາບແວດລ້ອມຂອງທ່ານ, ທ່ານອາດຈະຕ້ອງການ
ນ້ໍາ ເນື້ອໃນຊື່ຈາກສະຖານທີ່ຫ່າງໄກສອກຫຼີກຂອງຕົນເຂົ້າໄປໃນ PostgreSQL. ນີ້ແມ່ນວິທີເຮັດ
ວ່າ, ການນໍາໃຊ້ຮົບເກົ່າທົດສອບ trick Unix Pipes:

curl http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz \
| gunzip -c \
| pgloader --type csv \
--field "usps,geoid,aland,awater,aland_sqmi,awater_sqmi,intptlat,intptlong"
--with "ຂ້າມ header = 1" \
-- ກັບ "ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ '\t'" \
- \
postgresql:///pgloader?districts_longlat

ໃນປັດຈຸບັນ OS ຈະດູແລການຖ່າຍທອດແລະ buffering ລະຫວ່າງເຄືອຂ່າຍແລະ
ຄໍາສັ່ງແລະ pgloader ຈະດູແລການຖ່າຍທອດຂໍ້ມູນລົງໄປ PostgreSQL.

ການອົບພະຍົບ ຈາກ SQLite
ຄໍາສັ່ງຕໍ່ໄປນີ້ຈະເປີດຖານຂໍ້ມູນ SQLite, ຄົ້ນພົບຄໍານິຍາມຕາຕະລາງຂອງມັນ
ລວມທັງດັດສະນີແລະກະແຈຕ່າງປະເທດ, ຍ້າຍຄໍານິຍາມເຫຼົ່ານັ້ນໃນຂະນະທີ່ casting ປະເພດຂໍ້ມູນ
ຂໍ້ມູນສະເພາະກັບ PostgreSQL ຂອງພວກເຂົາທຽບເທົ່າແລະຫຼັງຈາກນັ້ນຍ້າຍຂໍ້ມູນຜ່ານ:

ສ້າງໃໝ່
pgloader ./test/sqlite/sqlite.db postgresql:///newdb

ການອົບພະຍົບ ຈາກ MySQL
ພຽງແຕ່ສ້າງຖານຂໍ້ມູນບ່ອນທີ່ເປັນເຈົ້າພາບຂໍ້ມູນ MySQL ແລະຄໍານິຍາມແລະມີ pgloader ເຮັດ
ການ​ເຄື່ອນ​ຍ້າຍ​ສໍາ​ລັບ​ທ່ານ​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​ດຽວ​:

ສ້າງb pagila
pgloader mysql://user@localhost/sakila postgresql:///pagila

ການດຶງ an ເກັບໄວ້ dbf ເອກະສານ ຈາກ a HTTP ໄລຍະໄກ ສະຖານທີ່
ມັນເປັນໄປໄດ້ສໍາລັບ pgloader ທີ່ຈະດາວໂຫລດໄຟລ໌ຈາກ HTTP, unarchive ມັນ, ແລະພຽງແຕ່ຫຼັງຈາກນັ້ນເປີດ
ມັນເພື່ອຄົ້ນພົບ schema ຈາກນັ້ນໂຫຼດຂໍ້ມູນ:

ສ້າງbfo
pgloader --type dbf http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/historiq2013.zip postgresql:///foo

ໃນທີ່ນີ້ມັນເປັນໄປບໍ່ໄດ້ສໍາລັບ pgloader ທີ່ຈະເດົາປະເພດຂອງແຫຼ່ງຂໍ້ມູນທີ່ມັນຖືກໃຫ້, ດັ່ງນັ້ນ
ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະນໍາໃຊ້ --ປະເພດ ປ່ຽນເສັ້ນ ຄຳ ສັ່ງ.

BATCHES ແລະ ທົດແທນ ຄວາມງາມ


ເພື່ອໂຫລດຂໍ້ມູນໃສ່ PostgreSQL, pgloader ໃຊ້ COPY ໂປຣໂຕຄອນການຖ່າຍທອດ. ໃນຂະນະທີ່ນີ້ແມ່ນ
ວິ​ທີ​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ໄວ​ຂຶ້ນ​, COPY ມີຈຸດອ່ອນທີ່ສໍາຄັນ: ທັນທີທີ່ PostgreSQL ປ່ອຍອອກມາ
ຂໍ້ຜິດພາດກັບຂໍ້ມູນນ້ອຍໆທີ່ຖືກສົ່ງໄປຫາມັນ, ບໍ່ວ່າບັນຫາໃດກໍ່ຕາມ, ຊຸດຂໍ້ມູນທັງຫມົດແມ່ນ
ປະຕິເສດໂດຍ PostgreSQL.

ເພື່ອເຮັດວຽກປະມານນັ້ນ, pgloader ຕັດຂໍ້ມູນເຂົ້າໄປໃນ ກຸ່ມ ຂອງ 25000 ແຖວ​ຕໍ່​ກັນ​, ດັ່ງ​ນັ້ນ​ໃນ​ເວ​ລາ​ທີ່​
ບັນຫາທີ່ເກີດຂື້ນມັນພຽງແຕ່ສົ່ງຜົນກະທົບຕໍ່ຂໍ້ມູນຫຼາຍແຖວເທົ່ານັ້ນ. ແຕ່ລະຊຸດຈະຖືກເກັບໄວ້ໃນຄວາມຊົງຈໍາ
ໃນຂະນະທີ່ COPY streaming ເກີດຂຶ້ນ, ໃນຄໍາສັ່ງທີ່ຈະສາມາດຈັດການກັບຄວາມຜິດພາດບາງເກີດຂຶ້ນ.

ເມື່ອ PostgreSQL ປະຕິເສດ batch ທັງຫມົດ, pgloader ບັນທຶກຂໍ້ຄວາມຄວາມຜິດພາດຫຼັງຈາກນັ້ນແຍກອອກ.
ແຖວທີ່ບໍ່ດີຈາກແຖວທີ່ຍອມຮັບໂດຍການລອງແຖວທີ່ຖືກຈັດໃສ່ຄືນໃໝ່ໃນກຸ່ມນ້ອຍໆ. ເຮັດ
ວ່າ, pgloader parses CONTEXT ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ຈາກ​ການ​ສໍາ​ເນົາ​ບໍ່​ສໍາ​ເລັດ​, ເປັນ​ຂໍ້​ຄວາມ​
ປະກອບມີຕົວເລກແຖວທີ່ພົບຂໍ້ຜິດພາດໃນຊຸດ, ດັ່ງຕໍ່ໄປນີ້
ຍົກຕົວຢ່າງ:

ເນື້ອໃນ: ສຳເນົາຂໍ້ຜິດພາດ, ແຖວທີ 3, ຖັນ b: "2006-13-11"

ການນໍາໃຊ້ຂໍ້ມູນນັ້ນ, pgloader ຈະໂຫຼດແຖວທັງຫມົດໃນ batch ກ່ອນທີ່ຈະຜິດພາດ
ອັນໜຶ່ງ, ບັນທຶກຂໍ້ຜິດພາດທີ່ຖືກປະຕິເສດ, ຈາກນັ້ນລອງໂຫຼດຊຸດທີ່ເຫຼືອຢູ່ໃນ
ຄວາມພະຍາຍາມຄັ້ງດຽວ, ເຊິ່ງອາດມີ ຫຼືບໍ່ມີຂໍ້ມູນຜິດພາດອື່ນໆ.

ໃນຕອນທ້າຍຂອງການໂຫຼດທີ່ບັນຈຸແຖວທີ່ຖືກປະຕິເສດ, ທ່ານຈະພົບເຫັນສອງໄຟລ໌ຢູ່ໃນ root-dir
ສະຖານທີ່, ພາຍໃຕ້ໄດເລກະທໍລີທີ່ມີຊື່ດຽວກັນກັບຖານຂໍ້ມູນເປົ້າຫມາຍຂອງການຕິດຕັ້ງຂອງທ່ານ. ໄດ້
ຊື່ໄຟລ໌ແມ່ນຕາຕະລາງເປົ້າຫມາຍ, ແລະການຂະຫຍາຍຂອງພວກເຂົາແມ່ນ .dat ສໍາລັບຂໍ້ມູນທີ່ຖືກປະຕິເສດແລະ
.ບັນທຶກ ສໍາລັບໄຟລ໌ທີ່ມີບັນທຶກດ້ານລູກຄ້າ PostgreSQL ເຕັມກ່ຽວກັບຂໍ້ມູນທີ່ຖືກປະຕິເສດ.

ໄດ້ .dat ໄຟລ໌ຖືກຈັດຮູບແບບໃນ PostgreSQL ຮູບແບບຂໍ້ຄວາມ COPY ເປັນເອກະສານໃນ
http://www.postgresql.org/docs/9.2/static/sql-copy.html#AEN66609 .

A ຫມາຍ​ເຫດ​ ກ່ຽວກັບ ຜົນງານ


pgloader ໄດ້​ຮັບ​ການ​ພັດ​ທະ​ນາ​ກັບ​ການ​ສະ​ແດງ​ຢູ່​ໃນ​ໃຈ​, ເພື່ອ​ໃຫ້​ສາ​ມາດ​ຮັບ​ມື​ກັບ​ເຄີຍ​
ຄວາມຕ້ອງການເພີ່ມຂຶ້ນໃນການໂຫຼດຂໍ້ມູນຈໍານວນຫລາຍເຂົ້າໄປໃນ PostgreSQL.

ສະຖາປັດຕະຍະກໍາພື້ນຖານທີ່ມັນໃຊ້ແມ່ນຮູບແບບທໍ່ Unix ເກົ່າ, ບ່ອນທີ່ thread ຮັບຜິດຊອບ
ສໍາລັບການໂຫຼດຂໍ້ມູນ (ການອ່ານໄຟລ໌ CSV, ສອບຖາມ MySQL, ແລະອື່ນໆ) ແລະຕື່ມຂໍ້ມູນການປຸງແຕ່ງກ່ອນ
ຂໍ້ມູນເຂົ້າໄປໃນຄິວ. ກະທູ້ອື່ນປ້ອນຈາກແຖວ, ນຳໃຊ້ບາງອັນ ການຫັນເປັນ
ຕໍ່ກັບຂໍ້ມູນການປ້ອນຂໍ້ມູນ ແລະຖ່າຍທອດຜົນສຸດທ້າຍໃຫ້ກັບ PostgreSQL ໂດຍໃຊ້ໂປຣໂຕຄໍ COPY.

ເມື່ອໃຫ້ໄຟລ໌ທີ່ PostgreSQL COPY ຄໍາສັ່ງຮູ້ວິທີການ parse, ແລະຖ້າຫາກວ່າໄຟລ໌
ບໍ່ມີຂໍ້ມູນທີ່ຜິດພາດ, ຫຼັງຈາກນັ້ນ pgloader ຈະບໍ່ໄວເທົ່າທີ່ຈະໃຊ້
PostgreSQL COPY ຄໍາສັ່ງ.

ໃຫ້ສັງເກດວ່າໃນຂະນະທີ່ COPY ຄໍາ​ສັ່ງ​ແມ່ນ​ຈໍາ​ກັດ​ການ​ອ່ານ​ບໍ່​ວ່າ​ຈະ​ຈາກ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ມາດ​ຕະ​ຖານ​ຂອງ​ຕົນ​ຫຼື​
ຈາກໄຟລ໌ທ້ອງຖິ່ນໃນລະບົບໄຟລ໌ຂອງເຄື່ອງແມ່ຂ່າຍ, ເຄື່ອງມືບັນທັດຄໍາສັ່ງ psql ປະຕິບັດກ
\ ສຳເນົາ ຄໍາສັ່ງທີ່ຮູ້ວິທີການຖ່າຍທອດໄຟລ໌ໃນທ້ອງຖິ່ນໄປຫາລູກຄ້າຜ່ານເຄືອຂ່າຍແລະ
ເຂົ້າໄປໃນເຄື່ອງແມ່ຂ່າຍ PostgreSQL, ໂດຍໃຊ້ໂປໂຕຄອນດຽວກັນກັບ pgloader ໃຊ້.

ແຫຼ່ງຂໍ້ມູນ ຮູບແບບ


pgloader ຮອງຮັບຮູບແບບການປ້ອນຂໍ້ມູນຕໍ່ໄປນີ້:

· csv, ເຊິ່ງລວມມີ tsv ແລະຕົວແປທົ່ວໄປອື່ນໆທີ່ທ່ານສາມາດປ່ຽນໄດ້
separator ແລະ ການອ້າງອີງ ກົດລະບຽບແລະວິທີການ escape ໄດ້ quote: ດ້ວຍຕົນເອງ;

· ໄຟລ໌ຖັນຄົງທີ່, ເຊິ່ງ pgloader ມີຄວາມຍືດຫຍຸ່ນພຽງພໍທີ່ຈະຮອງຮັບໄຟລ໌ແຫຼ່ງ
ຖັນທີ່ຂາດຫາຍໄປ (ຫຍາບ ຄົງ ຄວາມຍາວ ຖັນ ໄຟ ມີຢູ່);

· PostgreSLQ ສໍາ​ເນົາ​ໄຟລ​໌​ຮູບ​ແບບ​, ປະ​ຕິ​ບັດ​ຕາມ​ເອ​ກະ​ສານ​ສໍາ​ເນົາ​ຂໍ້​ຄວາມ​ຂອງ PostgreSQL​,
ເຊັ່ນ: ປະຕິເສດໄຟລ໌ທີ່ກະກຽມໂດຍ pgloader;

·ໄຟລ໌ dbase ທີ່ຮູ້ຈັກເປັນໄຟລ໌ db3 ຫຼື dbf;

· ixf ຮູບແບບໄຟລ໌, ixf ເປັນຮູບແບບການເກັບຮັກສາຖານສອງຈາກ IBM;

·ຖານຂໍ້ມູນ sqlite ທີ່ມີການຄົ້ນພົບອັດຕະໂນມັດຢ່າງເຕັມສ່ວນຂອງ schema ແລະກົດລະບຽບການໂຍນຂັ້ນສູງ;

·ຖານຂໍ້ມູນ mysql ທີ່ມີການຄົ້ນພົບອັດຕະໂນມັດຢ່າງເຕັມສ່ວນຂອງ schema ແລະກົດລະບຽບການໂຍນຂັ້ນສູງ;

· ຖານຂໍ້ມູນ MS SQL ທີ່ມີການຄົ້ນພົບແບບອັດຕະໂນມັດຢ່າງເຕັມສ່ວນຂອງ schema ແລະກົດລະບຽບການໂຍນຂັ້ນສູງ.

PGLOADER ສາມາດ SYNTAX


pgloader ປະຕິບັດພາສາສະເພາະຂອງໂດເມນທີ່ອະນຸຍາດໃຫ້ຕັ້ງຄ່າການໂຫຼດຂໍ້ມູນທີ່ຊັບຊ້ອນ
ສະຄຣິບຈັດການຖັນທີ່ຄຳນວນແລ້ວ ແລະທຳຄວາມສະອາດຢູ່ໃນຕົວຂອງຂໍ້ມູນການປ້ອນຂໍ້ມູນ. ສໍາລັບການເພີ່ມເຕີມ
ສະຖານະການການໂຫຼດຂໍ້ມູນທີ່ສັບສົນ, ທ່ານຈະຕ້ອງຮຽນຮູ້ syntax ຂອງ DSL. ມັນ
ຫມາຍເຖິງການເບິ່ງທີ່ຄຸ້ນເຄີຍກັບ DBA ໂດຍການໄດ້ຮັບການດົນໃຈໂດຍ SQL ບ່ອນທີ່ມັນມີຄວາມຫມາຍ, ເຊິ່ງບໍ່ແມ່ນ
ຫຼັງຈາກທີ່ທັງຫມົດ.

ຄໍາສັ່ງ pgloader ປະຕິບັດຕາມກົດລະບຽບໄວຍາກອນທົ່ວໂລກດຽວກັນ. ແຕ່ລະຄົນຂອງພວກເຂົາອາດຈະສະຫນັບສະຫນູນ
ພຽງແຕ່ຊຸດຍ່ອຍຂອງທາງເລືອກທົ່ວໄປແລະສະຫນອງທາງເລືອກສະເພາະ.

ໂຫຼດ
ຈາກ [ມີທົ່ງນາ ]
ເຂົ້າໄປໃນ [ ຖັນເປົ້າໝາຍ ]

[ດ້ວຍ ]

[ SET ]

[ ກ່ອນທີ່ຈະໂຫລດ [ເຮັດ | ປະຕິບັດ ] ... ]
[ ຫຼັງ​ຈາກ​ການ​ໂຫຼດ [ເຮັດ​ | ປະຕິບັດ ] ... ]
;

ປະໂຫຍກຕົ້ນຕໍແມ່ນ ນ້ໍາຫນັກ, ຈາກ, ເຂົ້າໄປ ແລະ ກັບ clauses ທີ່ແຕ່ລະຄໍາສັ່ງປະຕິບັດ.
ບາງຄໍາສັ່ງຫຼັງຈາກນັ້ນປະຕິບັດ SET ຄໍາສັ່ງ, ຫຼືບາງຂໍ້ສະເພາະເຊັ່ນ: ສົ່ງສັນຍານ
ອານຸປະໂຫຍດ.

COMMON ຂໍ້


ບາງຂໍ້ແມ່ນທົ່ວໄປກັບຄໍາສັ່ງທັງຫມົດ:

· ຈາກ

ໄດ້ ຈາກ clause ກໍານົດບ່ອນທີ່ຈະອ່ານຂໍ້ມູນຈາກ, ແລະແຕ່ລະຄໍາສັ່ງແນະນໍາຂອງມັນ
ຕົວແປຂອງຕົນເອງຂອງແຫຼ່ງ. ສໍາລັບຕົວຢ່າງ, ໄດ້ CSV ແຫຼ່ງສະຫນັບສະຫນູນ inline, stdin, ເປັນ
ຊື່ໄຟລ໌, ຊື່ໄຟລ໌ອ້າງອີງ, ແລະ ກ ຊື່​ເອ​ກະ​ສານ ການສົນທະນາ clause (ເບິ່ງຂ້າງເທິງ); ໃນຂະນະທີ່
MySQL ແຫຼ່ງທີ່ຮອງຮັບສະເພາະຖານຂໍ້ມູນ MySQL URI ເທົ່ານັ້ນ.

ໃນກໍລະນີທັງຫມົດ, ໄດ້ ຈາກ clause ສາມາດອ່ານມູນຄ່າຂອງມັນຈາກຕົວແປສະພາບແວດລ້ອມ
ເມື່ອໃຊ້ແບບຟອມ GETENV 'ຊື່'.

· ເຂົ້າໄປ

URI ການເຊື່ອມຕໍ່ PostgreSQL ຕ້ອງມີຊື່ຂອງຕາຕະລາງເປົ້າຫມາຍທີ່ຈະໂຫລດ
ຂໍ້ມູນເຂົ້າໄປໃນ. ຕາຕະລາງນັ້ນຕ້ອງຖືກສ້າງຂື້ນແລ້ວໃນ PostgreSQL, ແລະຊື່
ອາດຈະເປັນ schema ມີຄຸນສົມບັດ.

ໄດ້ ເຂົ້າໄປ ການເຊື່ອມຕໍ່ຖານຂໍ້ມູນເປົ້າຫມາຍ URI ສາມາດຖືກແຍກອອກຈາກມູນຄ່າຂອງສະພາບແວດລ້ອມ
ຕົວປ່ຽນແປງໃນເວລາທີ່ໃຊ້ແບບຟອມ GETENV 'ຊື່'.

ຫຼັງຈາກນັ້ນ, ເຂົ້າໄປ ທາງ​ເລືອກ​ຍັງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ບັນ​ຊີ​ລາຍ​ການ​ທີ່​ແຍກ​ອອກ​ດ້ວຍ​ເຄື່ອງ​ຫມາຍ​ຈຸດ​ຂອງ​ຖັນ​ເປົ້າ​ຫມາຍ​,
ຊຶ່ງເປັນຊື່ຂອງການປ້ອນຂໍ້ມູນ ພາກສະຫນາມ ຫຼືບັນຊີລາຍຊື່ທີ່ແຍກອອກຈາກພື້ນທີ່ສີຂາວຂອງ
ຊື່ຖັນເປົ້າໝາຍ, ປະເພດຂໍ້ມູນ PostgreSQL ຂອງມັນ ແລະ a ການ ນຳ ໃຊ້ ການສະແດງອອກ.

ໄດ້ ການ ນຳ ໃຊ້ ການສະແດງອອກສາມາດເປັນແບບຟອມ Lisp ທົ່ວໄປທີ່ຖືກຕ້ອງແລະຈະຖືກອ່ານດ້ວຍ
ຊຸດປັດຈຸບັນຕັ້ງເປັນ pgloader.transforms, ດັ່ງນັ້ນທ່ານສາມາດນໍາໃຊ້ຫນ້າທີ່ກໍານົດໃນ
ຊຸດນັ້ນ, ເຊັ່ນຟັງຊັນທີ່ໂຫລດແບບໄດນາມິກກັບ -- ໂຫຼດ ເສັ້ນຄໍາສັ່ງ
ພາລາມິເຕີ.

ແຕ່ລະຄົນ ການ ນຳ ໃຊ້ ການສະແດງອອກແມ່ນລວບລວມໃນເວລາແລ່ນໄປຫາລະຫັດພື້ນເມືອງ.

ຄຸນສົມບັດນີ້ອະນຸຍາດໃຫ້ pgloader ສາມາດໂຫຼດຊ່ອງຂໍ້ມູນຕ່າງໆໃນໄຟລ໌ CSV ເຂົ້າໄປໃນ a
ອາດຈະເປັນຈໍານວນຄໍລໍາທີ່ແຕກຕ່າງກັນໃນຖານຂໍ້ມູນ, ການນໍາໃຊ້ລະຫັດທີ່ກໍາຫນົດເອງສໍາລັບການນັ້ນ
ການຄາດຄະເນ.

· ກັບ

ຊຸດຂອງທາງເລືອກທີ່ຈະນໍາໃຊ້ກັບຄໍາສັ່ງ, ການນໍາໃຊ້ syntax ທົ່ວໂລກຂອງບໍ່ວ່າຈະ:

· ທີ່ສໍາຄັນ = ມູນຄ່າ

· ການນໍາໃຊ້ ທາງເລືອກ

· do ບໍ່ ການນໍາໃຊ້ ທາງເລືອກ

ເບິ່ງແຕ່ລະຄໍາສັ່ງສະເພາະສໍາລັບລາຍລະອຽດ.

· SET

ຂໍ້ນີ້ອະນຸຍາດໃຫ້ກໍານົດພາລາມິເຕີຂອງເຊດຊັນທີ່ຖືກກໍານົດໄວ້ສໍາລັບທຸກເຊດຊັນທີ່ເປີດ
ໂດຍ pgloader. ມັນຄາດຫວັງວ່າບັນຊີລາຍຊື່ຂອງຊື່ພາລາມິເຕີ, ເຄື່ອງຫມາຍເທົ່າທຽມກັນ, ຫຼັງຈາກນັ້ນໄດ້
ຄ່າທີ່ອ້າງອີງດຽວເປັນລາຍການທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ.

ຊື່ແລະຄ່າຂອງພາລາມິເຕີບໍ່ໄດ້ຖືກກວດສອບໂດຍ pgloader, ພວກເຂົາຖືກມອບໃຫ້
ຄືກັບ PostgreSQL.

· ກ່ອນ ນ້ໍາຫນັກ DO

ທ່ານສາມາດດໍາເນີນການສອບຖາມ SQL ຕໍ່ກັບຖານຂໍ້ມູນກ່ອນທີ່ຈະໂຫລດຂໍ້ມູນຈາກ CSV
ໄຟລ໌. ຄໍາຖາມ SQL ທົ່ວໄປທີ່ສຸດແມ່ນ ສ້າງ ຕາຕະລາງ IF ບໍ່ ມີຢູ່ ດັ່ງນັ້ນຂໍ້ມູນສາມາດ
ໂຫຼດແລ້ວ.

ແຕ່ລະຄໍາສັ່ງຕ້ອງເປັນ ໂດລາ-quoted: ມັນຕ້ອງເລີ່ມຕົ້ນແລະສິ້ນສຸດດ້ວຍເຄື່ອງຫມາຍສອງໂດລາ,
$$. ຈາກນັ້ນຄຳຊອກຫາທີ່ອ້າງອີງຈາກເງິນໂດລາຈະຖືກແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. ບໍ່ຄາດວ່າຈະມີເຄື່ອງໝາຍວັກຕອນເພີ່ມເຕີມ
ຫຼັງຈາກຄໍາຖາມ SQL ສຸດທ້າຍ.

· ກ່ອນ ນ້ໍາຫນັກ ສະຫຼຸບ

ພຶດ​ຕິ​ກໍາ​ດຽວ​ກັນ​ກັບ​ໃນ​ ກ່ອນ ນ້ໍາຫນັກ DO ຂໍ້. ອະນຸຍາດໃຫ້ທ່ານອ່ານຄໍາຖາມ SQL
ຈາກໄຟລ໌ SQL. ປະຕິບັດການສະຫນັບສະຫນູນສໍາລັບ PostgreSQL dollar-quoting ແລະ \i ແລະ \ir
ລວມເອົາສິ່ງອໍານວຍຄວາມສະດວກຕ່າງໆເຊັ່ນໃນ psql ຮູບແບບ batch (ບ່ອນທີ່ພວກເຂົາແມ່ນສິ່ງດຽວກັນ).

· AFTER ນ້ໍາຫນັກ DO

ຮູບແບບດຽວກັນກັບ ກ່ອນ ນ້ໍາຫນັກ DO, ຄໍາຖາມທີ່ອ້າງເຖິງເງິນໂດລາທີ່ພົບເຫັນຢູ່ໃນພາກນັ້ນແມ່ນ
ປະຕິບັດເມື່ອການໂຫຼດສໍາເລັດ. ນັ້ນແມ່ນເວລາທີ່ເຫມາະສົມທີ່ຈະສ້າງດັດສະນີແລະ
ຂໍ້ຈໍາກັດ, ຫຼືເປີດໃຊ້ triggers ຄືນໃໝ່.

· AFTER ນ້ໍາຫນັກ ສະຫຼຸບ

ພຶດ​ຕິ​ກໍາ​ດຽວ​ກັນ​ກັບ​ໃນ​ AFTER ນ້ໍາຫນັກ DO ຂໍ້. ອະນຸຍາດໃຫ້ທ່ານອ່ານຄໍາຖາມ SQL ຈາກ
ໄຟລ໌ SQL. ປະຕິບັດການສະຫນັບສະຫນູນສໍາລັບ PostgreSQL dollar-quoting ແລະ \i ແລະ \ir
ລວມເອົາສິ່ງອໍານວຍຄວາມສະດວກຕ່າງໆເຊັ່ນໃນ psql ຮູບແບບ batch (ບ່ອນທີ່ພວກເຂົາແມ່ນສິ່ງດຽວກັນ).

ການເຊື່ອມຕໍ່ string
ໄດ້ ພາລາມິເຕີຄາດວ່າຈະໃຫ້ເປັນ ການເຊື່ອມຕໍ່ URI ເປັນເອກະສານ
ໃນເອກະສານ PostgreSQL ຢູ່
http://www.postgresql.org/docs/9.3/static/libpq-connect.html#LIBPQ-CONNSTRING.

postgresql://[user[:password]@][netloc][:port][/dbname][?option=value&...]

ບ່ອນທີ່:

· ຜູ້ໃຊ້

ສາມາດມີຕົວອັກສອນໃດນຶ່ງ, ລວມທັງຈໍ້າສອງເມັດ (:) ຊຶ່ງ​ຫຼັງ​ຈາກ​ນັ້ນ​ຕ້ອງ​ໄດ້​ຮັບ​ສອງ​ເທົ່າ (::) ແລະ
ເຄື່ອງໝາຍ (@) ຊຶ່ງ​ຫຼັງ​ຈາກ​ນັ້ນ​ຕ້ອງ​ໄດ້​ຮັບ​ສອງ​ເທົ່າ (@@).

ເມື່ອຖືກລະເວັ້ນ, ໄດ້ ຜູ້ໃຊ້ ຊື່ເລີ່ມຕົ້ນເປັນຄ່າຂອງ PGUSER ການ​ປ່ຽນ​ແປງ​ສະ​ພາບ​ແວດ​ລ້ອມ​,
ແລະຖ້າມັນບໍ່ໄດ້ຖືກຕັ້ງ, ຄ່າຂອງ ຜູ້ໃຊ້ environment variable

· ລະຫັດຜ່ານ

ສາ​ມາດ​ປະ​ກອບ​ດ້ວຍ​ຕົວ​ອັກ​ສອນ​ໃດ​ຫນຶ່ງ​, ລວມ​ທັງ​ການ​ຢູ່​ໃນ​ເຄື່ອງ​ຫມາຍ (@) ຊຶ່ງ​ຫຼັງ​ຈາກ​ນັ້ນ​ຕ້ອງ​ໄດ້​ຮັບ​ສອງ​ເທົ່າ (@@).
ເພື່ອປ່ອຍໃຫ້ລະຫັດຜ່ານຫວ່າງເປົ່າ, ເມື່ອ ຜູ້ໃຊ້ ຊື່ລົງທ້າຍດ້ວຍເຄື່ອງໝາຍ, ຈາກນັ້ນເຈົ້າຕ້ອງ
ໃຊ້ syntax user:@.

ເມື່ອຖືກລະເວັ້ນ, ໄດ້ ລະຫັດຜ່ານ defaults ກັບຄ່າຂອງ PGPASSWORD ສະພາບແວດລ້ອມ
ຕົວແປຖ້າມັນຖືກຕັ້ງ, ຖ້າບໍ່ດັ່ງນັ້ນລະຫັດຜ່ານຈະຖືກປະໄວ້ໂດຍບໍ່ໄດ້ຕັ້ງ.

· netloc

ສາມາດເປັນຊື່ໂຮດໃນເຄື່ອງໝາຍຈຸດ, ຫຼື ipv4, ຫຼືຊັອກເກັດໂດເມນ Unix.
ເສັ້ນທາງ. ຫວ່າງເປົ່າແມ່ນສະຖານທີ່ເຄືອຂ່າຍເລີ່ມຕົ້ນ, ພາຍໃຕ້ການສະຫນອງລະບົບ Unix ໂດເມນ
socket ວິທີການນັ້ນແມ່ນມັກ, ຖ້າບໍ່ດັ່ງນັ້ນ netloc ເລີ່ມຕົ້ນເປັນ localhost.

ມັນ​ເປັນ​ໄປ​ໄດ້​ທີ່​ຈະ​ບັງ​ຄັບ​ Unix ໂດເມນ socket ເສັ້ນທາງໂດຍການໃຊ້ syntax
unix:/path/to/where/the/socket/file/is, ດັ່ງນັ້ນເພື່ອບັງຄັບເສັ້ນທາງຊັອກເກັດທີ່ບໍ່ແມ່ນມາດຕະຖານແລະ a
ບໍ່ແມ່ນພອດເລີ່ມຕົ້ນ, ເຈົ້າຈະມີ:

postgresql://unix:/ tmp: 54321/dbname

ໄດ້ netloc defaults ກັບຄ່າຂອງ PGHOST ສະພາບແວດລ້ອມປ່ຽນແປງໄດ້, ແລະຖ້າມັນບໍ່ໄດ້ຖືກຕັ້ງ,
ເປັນຄ່າເລີ່ມຕົ້ນ Unix ເສັ້ນທາງຊັອກເກັດໃນເວລາທີ່ແລ່ນຢູ່ໃນລະບົບ Unix, ແລະ localhost
ຖ້າບໍ່ດັ່ງນັ້ນ.

· dbname

ຄວນເປັນຕົວລະບຸທີ່ຖືກຕ້ອງ (ຕົວອັກສອນຕາມດ້ວຍຕົວໜັງສືປະສົມ, ຕົວເລກ ແລະ ຕົວໜັງສື
ເຄື່ອງໝາຍຈຸດເຄື່ອງໝາຍຈຸດ (,), dash (-) ແລະ​ຂີດ​ກ້ອງ (_).

ເມື່ອຖືກລະເວັ້ນ, ໄດ້ dbname ເປັນຄ່າເລີ່ມຕົ້ນຂອງຕົວແປສະພາບແວດລ້ອມ PGDATABASE,
ແລະ​ຖ້າ​ຫາກ​ວ່າ​ບໍ່​ໄດ້​ຕັ້ງ​ຄ່າ​, ກັບ​ ຜູ້ໃຊ້ ມູນຄ່າຕາມທີ່ໄດ້ກໍານົດຂ້າງເທິງ.

· ທາງເລືອກໃນການ

ຕົວກໍານົດການທາງເລືອກຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ກັບແບບຟອມ name=value, ແລະທ່ານອາດຈະໃຊ້
ຕົວກໍານົດການຫຼາຍໂດຍການແຍກພວກມັນອອກໄປໂດຍໃຊ້ ampersand (&) ລັກ​ສະ​ນະ​.

ມີພຽງບາງທາງເລືອກທີ່ຮອງຮັບຢູ່ທີ່ນີ້, ຊື່ຕາຕະລາງ (ເຊິ່ງອາດມີຄຸນສົມບັດກັບ ກ
ຊື່ schema) sslmode, ເຈົ້າພາບ, port, dbname, ຜູ້ໃຊ້ ແລະ ລະຫັດຜ່ານ.

ໄດ້ sslmode ຄ່າພາລາມິເຕີສາມາດເປັນຫນຶ່ງໃນ ປິດການໃຊ້ວຽກ, ອະນຸຍາດໃຫ້, ມັກ or ຕ້ອງການ.

ສໍາລັບເຫດຜົນຄວາມເຂົ້າກັນໄດ້ໃນດ້ານຫລັງ, ມັນເປັນໄປໄດ້ທີ່ຈະລະບຸ ຊື່ຕາຕະລາງ ທາງເລືອກ
ໂດຍກົງ, ໂດຍບໍ່ມີການສະກົດຄໍາ ຊື່ຕາຕະລາງ= ພາກສ່ວນ.

ທາງເລືອກໃນການ override ອົງປະກອບ URI ຕົ້ນຕໍໃນເວລາທີ່ທັງສອງໄດ້ຖືກມອບໃຫ້, ແລະການນໍາໃຊ້
ຕົວກໍານົດການທາງເລືອກທີ່ເຂົ້າລະຫັດຮ້ອຍລະອະນຸຍາດໃຫ້ໃຊ້ລະຫັດຜ່ານເລີ່ມຕົ້ນດ້ວຍຈໍ້າສອງເມັດແລະ
ຂ້າມຂໍ້ຈຳກັດການວິເຄາະອົງປະກອບ URI ອື່ນໆ.

ເປັນປົກກະຕິ ສຳ ນວນ
ຫຼາຍຂໍ້ທີ່ລະບຸໄວ້ໃນຕໍ່ໄປນີ້ຍອມຮັບ ປົກກະຕິ expressions ກັບສິ່ງຕໍ່ໄປນີ້
ກົດ​ລະ​ບຽບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​:

· ການສະແດງອອກປົກກະຕິເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍ tilde (~),

·​ຫຼັງ​ຈາກ​ນັ້ນ​ແມ່ນ​ປະ​ຕິ​ບັດ​ດ້ວຍ​ເຄື່ອງ​ຫມາຍ​ເປີດ​,

· ຫຼັງຈາກນັ້ນ, ຕົວອັກສອນໃດນຶ່ງໄດ້ຖືກອະນຸຍາດ ແລະຖືວ່າເປັນສ່ວນໜຶ່ງຂອງການສະແດງຜົນປົກກະຕິ, ຍົກເວັ້ນ
ສໍາ​ລັບ​ເຄື່ອງ​ຫມາຍ​ປິດ​,

· ຄາດ​ວ່າ​ຈະ​ມີ​ປ້າຍ​ປິດ.

ປ້າຍເປີດແລະປິດແມ່ນອະນຸຍາດໂດຍຄູ່, ນີ້ແມ່ນບັນຊີລາຍຊື່ຄົບຖ້ວນຂອງອະນຸຍາດ
ຕົວຂັ້ນ:

~//
~[]
~{}
~()
~<>
~""
~'
~||
~##

ເລືອກຊຸດຕົວຂັ້ນທີ່ບໍ່ຂັດກັນກັບ ປົກກະຕິ ການສະແດງອອກ ເຈົ້າພະຍາຍາມ
ວັດສະດຸປ້ອນ. ຖ້າການສະແດງອອກຂອງເຈົ້າເປັນເຊັ່ນວ່າບໍ່ມີການແກ້ໄຂໃດໆທີ່ອະນຸຍາດໃຫ້ທ່ານເຂົ້າໄປໃນມັນ,
ສະຖານທີ່ບ່ອນທີ່ການສະແດງອອກດັ່ງກ່າວຖືກອະນຸຍາດຄວນອະນຸຍາດໃຫ້ມີບັນຊີລາຍຊື່ຂອງການສະແດງອອກ.

ຄວາມຄິດເຫັນ
ຄໍາ​ສັ່ງ​ໃດ​ຫນຶ່ງ​ອາດ​ຈະ​ມີ​ຄໍາ​ຄິດ​ເຫັນ​, ປະ​ຕິ​ບັດ​ຕາມ​ກົດ​ລະ​ບຽບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ເຫຼົ່າ​ນີ້​:

· ໄດ້ -- delimiter ເລີ່ມຕົ້ນຄໍາຄິດຄໍາເຫັນທີ່ສິ້ນສຸດດ້ວຍຈຸດສິ້ນສຸດຂອງເສັ້ນປະຈຸບັນ,

· ຕົວ​ຊີ້​ວັດ​ /* ແລະ */ ຕາມລໍາດັບເລີ່ມຕົ້ນແລະສິ້ນສຸດຄໍາເຫັນ, ເຊິ່ງສາມາດພົບໄດ້ໃນ
ກາງຂອງຄໍາສັ່ງຫຼື span ຫຼາຍສາຍ.

ສະຖານທີ່ໃດກໍ່ຕາມທີ່ທ່ານສາມາດເຂົ້າໄປໃນ a ຍະຫວ່າງ ຈະຍອມຮັບຄໍາຄິດເຫັນເຊັ່ນກັນ.

Batch ພຶດຕິກໍາ ທາງເລືອກໃນການ
ຄໍາສັ່ງ pgloader ທັງຫມົດມີການສະຫນັບສະຫນູນສໍາລັບ a ກັບ clause ທີ່ອະນຸຍາດໃຫ້ສໍາລັບການລະບຸທາງເລືອກ.
ບາງທາງເລືອກແມ່ນທົ່ວໄປແລະຍອມຮັບໂດຍຄໍາສັ່ງທັງຫມົດ, ເຊັ່ນ: batch ພຶດຕິກໍາ
ທາງເລືອກໃນການ, ແລະບາງທາງເລືອກແມ່ນສະເພາະກັບປະເພດແຫຼ່ງຂໍ້ມູນ, ເຊັ່ນ CSV ຂ້າມ header
ທາງເລືອກ.

ທາງ​ເລືອກ​ການ​ປະ​ຕິ​ບັດ batch ທົ່ວ​ໂລກ​ແມ່ນ​:

· batch ແຖວ

ເອົາຄ່າຕົວເລກເປັນ argument, ໃຊ້ເປັນຈຳນວນສູງສຸດຂອງແຖວທີ່ອະນຸຍາດໃນ a
ຊຸດ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 25 000 ແລະສາມາດປ່ຽນແປງໄດ້ເພື່ອພະຍາຍາມມີການສະແດງທີ່ດີກວ່າ
ຄຸນລັກສະນະຫຼືເພື່ອຄວບຄຸມການນໍາໃຊ້ຫນ່ວຍຄວາມຈໍາ pgloader;

· batch ຂະຫນາດ

ເອົາຫນ່ວຍຄວາມຈໍາເປັນການໂຕ້ຖຽງ, ເຊັ່ນ: 20 MB, ຄ່າເລີ່ມຕົ້ນຂອງມັນ. ຍອມຮັບ
ຕົວຄູນແມ່ນ kB, MB, GB, TB ແລະ PB. ກໍລະນີແມ່ນສໍາຄັນເພື່ອບໍ່ໃຫ້ສັບສົນ
ກ່ຽວກັບ bits ທຽບກັບ bytes, ພວກເຮົາພຽງແຕ່ເວົ້າ bytes ຢູ່ທີ່ນີ້.

· batch ພ້ອມກັນ

ເອົາຄ່າຕົວເລກເປັນ argument, ເລີ່ມຕົ້ນເປັນ 10. ນັ້ນແມ່ນຈໍານວນຊຸດທີ່
pgloader ແມ່ນອະນຸຍາດໃຫ້ສ້າງໃນຫນ່ວຍຄວາມຈໍາ, ເຖິງແມ່ນວ່າພຽງແຕ່ batch ດຽວໃນເວລາອາດຈະ
ຖືກສົ່ງໄປຫາ PostgreSQL.

ສະຫນັບສະຫນູນຫຼາຍກ່ວາ batch ດຽວທີ່ຖືກສົ່ງໃນເວລານັ້ນແມ່ນຢູ່ໃນບັນຊີລາຍຊື່ TODO ຂອງ
pgloader, ແຕ່ຍັງບໍ່ໄດ້ປະຕິບັດເທື່ອ. ຕົວເລືອກນີ້ແມ່ນກ່ຽວກັບການຄວບຄຸມຄວາມຊົງຈໍາ
ຄວາມຕ້ອງການຂອງ pgloader ເປັນການຄ້າກັບຄຸນລັກສະນະຂອງການສະແດງ, ແລະບໍ່ແມ່ນກ່ຽວກັບ
ການເຄື່ອນໄຫວຂະຫນານຂອງ pgloader.

ທາງ​ເລືອກ​ອື່ນ​ແມ່ນ​ສະ​ເພາະ​ແຕ່​ລະ​ແຫຼ່ງ​ຂໍ້​ມູນ​, ກະ​ລຸ​ນາ​ເບິ່ງ​ພາກ​ສ່ວນ​ສະ​ເພາະ​ຂອງ​
ເອກະສານສໍາລັບລາຍຊື່ແລະການປົກຫຸ້ມຂອງເຂົາເຈົ້າ.

ຫຼັງ​ຈາກ​ນັ້ນ batch ໄດ້​ຖືກ​ປິດ​ໃນ​ທັນ​ທີ​ທີ່​ທັງ​ຫມົດ​ batch ແຖວ ຫຼື batch ຂະຫນາດ ເກນແມ່ນ
ຂ້າມ, ອັນໃດມາກ່ອນ. ໃນ​ກໍ​ລະ​ນີ​ທີ່ batch ຕ້ອງ​ໄດ້​ຮັບ​ການ​ປິດ​ເນື່ອງ​ຈາກ​ວ່າ​
batch ຂະຫນາດ ການຕັ້ງຄ່າ, ກ debug ຂໍ້​ຄວາມ​ບັນ​ທຶກ​ລະ​ດັບ​ແມ່ນ​ພິມ​ອອກ​ດ້ວຍ​ຈໍາ​ນວນ​ແຖວ​ທີ່​ເຫມາະ​ໃນ​ການ​
ຂະຫນາດໃຫຍ່ ຊຸດ.

ນ້ໍາຫນັກ CSV


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫລດຂໍ້ມູນຈາກ a CSV ໄຟລ໌. ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫລດ CSV
ຈາກ 'GeoLiteCity-Blocks.csv' ດ້ວຍການເຂົ້າລະຫັດ iso-646-us
ມີທົ່ງນາ
(
startIpNum, endIpNum, locId
)
ເຂົ້າໄປໃນ postgresql://user@localhost:54393/dbname?geolite.blocks
ຖັນເປົ້າໝາຍ
(
iprange ip4r ໂດຍໃຊ້ (ip-range startIpNum endIpNum),
locId
)
ດ້ວຍການຕັດສັ້ນ,
ຂ້າມຫົວ = 2,
ຊ່ອງຂໍ້ມູນປິດລ້ອມເປັນທາງເລືອກໂດຍ ´"´,
ຊ່ອງທີ່ຫລົບຫນີໂດຍ backslash-quote,
ຊ່ອງຂໍ້ມູນສິ້ນສຸດໂດຍ '\t'

SET work_mem ເປັນ ´32 MB´, maintenance_work_mem ເປັນ ´64 MB´;

ໄດ້ csv ຄໍາສັ່ງຮູບແບບຍອມຮັບຂໍ້ຕໍ່ໄປນີ້ແລະທາງເລືອກ:

· ຈາກ

ຊື່ໄຟລ໌ທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ຍອມຮັບ ກຳລັງເຂົ້າລະຫັດ ທາງເລືອກ. ໃຊ້
--list-encodes ທາງເລືອກທີ່ຈະຮູ້ວ່າຊື່ການເຂົ້າລະຫັດໃດໄດ້ຮັບການສະຫນັບສະຫນູນ.

ຊື່ໄຟລ໌ອາດຈະຖືກຫຸ້ມດ້ວຍວົງຢືມດຽວ, ແລະສາມາດເປັນຫນຶ່ງໃນຕໍ່ໄປນີ້
ຄຸນ​ຄ່າ​ພິ​ເສດ​:

· inline

ຂໍ້ມູນຖືກພົບເຫັນຫຼັງຈາກສິ້ນສຸດຂອງຄໍາສັ່ງທີ່ແຍກວິເຄາະ. ຈໍານວນເສັ້ນຫວ່າງໃດໆ
ລະຫວ່າງການສິ້ນສຸດຂອງຄໍາສັ່ງແລະການເລີ່ມຕົ້ນຂອງຂໍ້ມູນຖືກຍອມຮັບ.

· stdin

ອ່ານຂໍ້ມູນຈາກກະແສການປ້ອນຂໍ້ມູນມາດຕະຖານ.

· FILENAMES ການສົນທະນາ

ທັງ​ຫມົດ ການຈັບຄູ່ clause ຕ້ອງປະຕິບັດຕາມກົດລະບຽບດັ່ງຕໍ່ໄປນີ້:

[ທຸກ FILENAMES | [ FIRST ] FILENAME ]
ການຈັບຄູ່ regexp
[ຢູ່ໃນໄດເລກະທໍລີ ´...´ ]

ໄດ້ ການຈັບຄູ່ ຂໍ້​ທີ່​ໃຊ້​ໄດ້​ຮັບ​ການ​ໃຫ້​ ປົກກະຕິ ການສະແດງອອກ (ເບິ່ງຂ້າງເທິງສໍາລັບ syntax ທີ່ແນ່ນອນ, ຫຼາຍ
ທາງ​ເລືອກ​ສາ​ມາດ​ນໍາ​ໃຊ້​ທີ່​ນີ້​) ກັບ​ຊື່​ໄຟລ​໌​. ຫຼັງຈາກນັ້ນ, ມັນເປັນໄປໄດ້ທີ່ຈະໂຫຼດຂໍ້ມູນຈາກພຽງແຕ່
ການແຂ່ງຂັນຄັ້ງທໍາອິດຂອງພວກເຂົາທັງຫມົດ.

ທາງເລືອກ IN ທິດທາງ clause ອະ​ນຸ​ຍາດ​ໃຫ້​ລະ​ບຸ​ວ່າ​ລະ​ບົບ​ທີ່​ຈະ​ຍ່າງ​ສໍາ​ລັບ​ການ​ຊອກ​ຫາ​ໄດ້​
ໄຟລ໌ຂໍ້ມູນ, ແລະສາມາດຖືກປຽບທຽບກັບບ່ອນທີ່ໄຟລ໌ຄໍາສັ່ງຖືກອ່ານຈາກ, ຫຼື
ຢ່າງແທ້ຈິງ. ໄດເລກະທໍລີທີ່ລະບຸຕ້ອງມີຢູ່.

ໄດ້ ຈາກ ທາງ​ເລືອກ​ຍັງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ບັນ​ຊີ​ລາຍ​ຊື່​ທີ່​ແຍກ​ອອກ​ເປັນ​ເຄື່ອງ​ຫມາຍ​ຈຸດ​ທາງ​ເລືອກ​ຂອງ​ ພາກສະຫນາມ ຊື່​ອະ​ທິ​ບາຍ​
ສິ່ງທີ່ຄາດວ່າຈະຢູ່ໃນ CSV ໄຟລ໌ຂໍ້ມູນ, ແນະນໍາທາງເລືອກໂດຍຂໍ້ ແລ່ນ ທົ່ງນາ.

ຊື່ແຕ່ລະຊ່ອງສາມາດເປັນພຽງຊື່ດຽວ ຫຼືຊື່ຕໍ່ໄປນີ້ກັບຜູ້ອ່ານສະເພາະ
ທາງ​ເລືອກ​ສໍາ​ລັບ​ພາກ​ສະ​ຫນາມ​ນັ້ນ​, enclosed ໃນ​ວົງ​ເລັບ​ສີ່​ຫຼ່ຽມ​ແລະ​ເຄື່ອງ​ຫມາຍ​ຈຸດ​ທີ່​ແຍກ​ອອກ​. ສະຫນັບສະຫນູນ
ທາງ​ເລືອກ​ຂອງ​ຜູ້​ອ່ານ​ຕໍ່​ພາກ​ສະ​ຫນາມ​ແມ່ນ​:

· ສິ້ນສຸດລົງ by

ເບິ່ງລາຍລະອຽດຂອງ ພາກສະຫນາມ ສິ້ນສຸດລົງ by ຂ້າງລຸ່ມນີ້.

ການປຸງແຕ່ງທາງເລືອກນີ້ບໍ່ໄດ້ປະຕິບັດໃນປັດຈຸບັນ.

· ວັນ ຮູບແບບ

ໃນເວລາທີ່ພາກສະຫນາມຄາດວ່າຈະເປັນປະເພດວັນທີ, ຫຼັງຈາກນັ້ນທາງເລືອກນີ້ອະນຸຍາດໃຫ້ກໍານົດການ
ຮູບແບບວັນທີທີ່ໃຊ້ໃນໄຟລ໌.

ສະຕຣິງຮູບແບບວັນທີແມ່ນສະຕຣິງແມ່ແບບທີ່ສ້າງແບບຈໍາລອງກັບ PostgreSQL to_char
ສະ​ຫນັບ​ສະ​ຫນູນ​ສະ​ຕ​ຣິງ​ແມ່​ແບບ​, ຈໍາ​ກັດ​ຮູບ​ແບບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

· YYYY, YYY, YY ສໍາລັບພາກສ່ວນປີ

· MM ສໍາລັບພາກສ່ວນເດືອນຕົວເລກ

· DD ສໍາລັບພາກສ່ວນມື້ຕົວເລກ

· HH, HH12, HH24 ສໍາລັບພາກສ່ວນຊົ່ວໂມງ

· am, AM, am, AM

· ແລງ, ແລງ, ແລງ, ແລງ

· MI ສໍາລັບພາກສ່ວນນາທີ

· SS ສໍາລັບພາກສ່ວນວິນາທີ

· MS ສໍາລັບສ່ວນ milliseconds (4 ຕົວເລກ)

·ສະຫະລັດສໍາລັບ microseconds (6 ຕົວເລກ)

· ເຄື່ອງໝາຍວັກຕອນທີ່ບໍ່ໄດ້ວິເຄາະ: - . * # @ T / \ ແລະຊ່ອງ

ນີ້ແມ່ນຕົວຢ່າງຂອງ a ວັນ ຮູບແບບ ຂໍ້ມູນ:

ຊື່ຖັນ [ຮູບແບບວັນທີ 'YYYY-MM-DD HH24-MI-SS.US']

· null if

ຕົວເລືອກນີ້ໃຊ້ເວລາການໂຕ້ຖຽງເຊິ່ງເປັນຄໍາສໍາຄັນ ເປົ່າຫວ່າງ ຫຼືສອງວົງຢືມ
string

ເມື່ອ​ໃດ​ ເປົ່າຫວ່າງ ຖືກ​ນໍາ​ໃຊ້​ແລະ​ຄ່າ​ພາກ​ສະ​ຫນາມ​ທີ່​ຖືກ​ອ່ານ​ມີ​ພຽງ​ແຕ່​ຕົວ​ອັກ​ສອນ​ຍະ​ຫວ່າງ​,
ຫຼັງຈາກນັ້ນ, ມັນຈະຖືກປ່ຽນເປັນ SQL ໂດຍອັດຕະໂນມັດ NULL ມູນຄ່າ.

ເມື່ອສະຕຣິງທີ່ອ້າງອີງຄູ່ຖືກໃຊ້ ແລະສະຕຣິງນັ້ນຖືກອ່ານເປັນຄ່າຂອງຊ່ອງຂໍ້ມູນ, ຈາກນັ້ນ
ຄ່າພາກສະຫນາມຈະຖືກປ່ຽນເປັນ SQL ໂດຍອັດຕະໂນມັດ NULL ມູນຄ່າ.

· trim ທັງສອງ ຍະຫວ່າງ, trim ໄວ້ ຍະຫວ່າງ, trim ສິດ ຍະຫວ່າງ

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ຕັດ​ຊ່ອງ​ຂາວ​ໃນ​ຂໍ້​ມູນ​ທີ່​ອ່ານ​, ທັງ​ສອງ​ດ້ານ​ຂອງ​
ຂໍ້​ມູນ​, ຫຼື​ພຽງ​ແຕ່​ຕົວ​ອັກ​ສອນ​ຍະ​ຫວ່າງ​ທີ່​ພົບ​ເຫັນ​ຢູ່​ເບື້ອງ​ຊ້າຍ​ຂອງ​ການ​ສະ​ຕ​ຣີ​ພາບ​, ຫຼື​ພຽງ​ແຕ່​
ທີ່ຢູ່ເບື້ອງຂວາຂອງສາຍ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ CSV ໄຟລ໌, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ a ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ກັບ PostgreSQL
ຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະອ່ານໄຟລ໌ຂໍ້ມູນ.

· ວາງ ດັດສະນີ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, ບັນຫາ pgloader ຢຸດ INDEX ຄໍາສັ່ງຕໍ່ຕ້ານທັງຫມົດ
ດັດສະນີທີ່ກໍານົດໄວ້ໃນຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນ ສ້າງ INDEX
ຄໍາສັ່ງຄັ້ງດຽວ COPY ແມ່ນແລ້ວ.

ເພື່ອໃຫ້ໄດ້ຮັບການປະຕິບັດທີ່ດີທີ່ສຸດທີ່ເປັນໄປໄດ້, ດັດສະນີທັງຫມົດຖືກສ້າງຂື້ນໃນ
ຂະ​ຫນານ​ແລະ​ໃນ​ເວ​ລາ​ທີ່​ເຮັດ​ໄດ້​ກະ​ແຈ​ຕົ້ນ​ຕໍ​ໄດ້​ຖືກ​ສ້າງ​ຂຶ້ນ​ອີກ​ເທື່ອ​ຫນຶ່ງ​ຈາກ​ດັດ​ຊະ​ນີ​ທີ່​ເປັນ​ເອ​ກະ​ລັກ​ພຽງ​ແຕ່​
ສ້າງ. ຂະບວນການສອງຂັ້ນຕອນນີ້ອະນຸຍາດໃຫ້ສ້າງດັດສະນີຫຼັກຕົ້ນຕໍໃນຂະຫນານກັບ
ດັດຊະນີອື່ນໆ, ມີພຽງແຕ່ ອີກຕໍ່ໄປ ຕາຕະລາງ ຄໍາສັ່ງຕ້ອງການ ການເຂົ້າເຖິງ exclusive ລັອກ on
ຕາ​ຕະ​ລາງ​ເປົ້າ​ຫມາຍ​.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ຂ້າມ header

ເອົາຄ່າຕົວເລກເປັນ argument. ແນະນຳ pgloader ໃຫ້ຂ້າມເສັ້ນຫຼາຍເສັ້ນນັ້ນຢູ່ທີ່
ການເລີ່ມຕົ້ນຂອງໄຟລ໌ປ້ອນຂໍ້ມູນ.

· csv header

ໃຊ້ແຖວທໍາອິດທີ່ອ່ານຫຼັງຈາກນັ້ນ ຂ້າມ header ເປັນບັນຊີລາຍຊື່ຂອງ csv ຊື່ພາກສະຫນາມທີ່ຈະພົບເຫັນ
ໃນໄຟລ໌ CSV, ໂດຍໃຊ້ຕົວກໍານົດການ CSV ດຽວກັນກັບຂໍ້ມູນ CSV.

· trim ບໍ່ໄດ້ອ້າງອີງ ເປົ່າຫວ່າງ

ເມື່ອອ່ານຄ່າ unquoted ໃນ CSV ໄຟລ໌, ເອົາຊ່ອງຫວ່າງທີ່ພົບເຫັນຢູ່ໃນລະຫວ່າງ
ຕົວ​ແຍກ​ແລະ​ມູນ​ຄ່າ​. ພຶດຕິກຳນັ້ນເປັນຄ່າເລີ່ມຕົ້ນ.

· ຮັກສາ ບໍ່ໄດ້ອ້າງອີງ ເປົ່າຫວ່າງ

ເມື່ອອ່ານຄ່າ unquoted ໃນ CSV ໄຟລ໌, ຮັກສາຊ່ອງຫວ່າງທີ່ພົບເຫັນຢູ່ໃນລະຫວ່າງ
ຕົວ​ແຍກ​ແລະ​ມູນ​ຄ່າ​.

· ທົ່ງນາ ຕົວເລືອກ ລ້ອມຮອບ by

ເອົາຕົວອັກສອນດຽວເປັນການໂຕ້ຖຽງ, ເຊິ່ງຈະຕ້ອງພົບຢູ່ໃນວົງຢືມດຽວ, ແລະ
ອາດຈະຖືກມອບໃຫ້ເປັນຕົວອັກສອນທີ່ສາມາດພິມໄດ້ເອງ, ຄ່າພິເສດ \t ເພື່ອໝາຍເຖິງ a
ລັກສະນະຕາຕະລາງ, ຫຼື 0x ຫຼັງຈາກນັ້ນ, ຄ່າເລກຖານສິບຫົກທີ່ອ່ານເປັນລະຫັດ ASCII ສໍາລັບ
ລັກສະນະ.

ຕົວອັກສອນນີ້ຖືກໃຊ້ເປັນຕົວອັກສອນອ້າງອີງໃນ CSV ໄຟລ໌, ແລະເລີ່ມຕົ້ນເປັນ
double-quote.

· ທົ່ງນາ ບໍ່ ລ້ອມຮອບ

ໂດຍຄ່າເລີ່ມຕົ້ນ, pgloader ຈະໃຊ້ຕົວອັກສອນສອງເທົ່າເປັນຕົວອັກສອນປິດ.
ຖ້າທ່ານມີໄຟລ໌ CSV ທີ່ຊ່ອງຂໍ້ມູນບໍ່ໄດ້ຖືກປິດລ້ອມແລະກໍາລັງໃຊ້ double-quote ເປັນ
ຄາດ​ວ່າ​ຈະ​ມີ​ລັກ​ສະ​ນະ​ທໍາ​ມະ​ດາ​, ຫຼັງ​ຈາກ​ນັ້ນ​ນໍາ​ໃຊ້​ທາງ​ເລືອກ​ ທົ່ງນາ ບໍ່ ລ້ອມຮອບ ສໍາລັບ CSV
parser ເພື່ອຍອມຮັບຄ່າເຫຼົ່ານັ້ນ.

· ທົ່ງນາ ເອົາຕົວຫຼົບ ໜີ by

ເອົາຄ່າພິເສດ backslash-quote or double-quote, ຫຼືມູນຄ່າໃດໆທີ່ສະຫນັບສະຫນູນ
ໂດຍ ທົ່ງນາ ສິ້ນສຸດລົງ by ທາງເລືອກ (ເບິ່ງຂ້າງລຸ່ມນີ້). ຄ່ານີ້ຖືກໃຊ້ເພື່ອຮັບຮູ້
ຕົວແຍກພາກສະຫນາມທີ່ຫລົບຫນີເມື່ອພວກເຂົາຈະຖືກພົບເຫັນຢູ່ໃນຊ່ອງຂໍ້ມູນດ້ວຍຕົນເອງ.
ຄ່າເລີ່ມຕົ້ນເປັນ double-quote.

· csv escape ຮູບແບບການ

ເອົາຄ່າພິເສດ quote (ຄ່າເລີ່ມຕົ້ນ) ຫຼື ດັ່ງຕໍ່ໄປນີ້ ແລະອະນຸຍາດໃຫ້ CSV
parser ເພື່ອວິເຄາະພຽງແຕ່ຕົວແຍກພາກສະຫນາມທີ່ຫນີອອກຫຼືຕົວອັກສອນໃດໆ (ລວມທັງ CSV
data) ເມື່ອ​ນຳ​ໃຊ້ ດັ່ງຕໍ່ໄປນີ້ ມູນຄ່າ.

· ທົ່ງນາ ສິ້ນສຸດລົງ by

ເອົາຕົວອັກສອນດຽວເປັນການໂຕ້ຖຽງ, ເຊິ່ງຈະຕ້ອງພົບຢູ່ໃນວົງຢືມດຽວ, ແລະ
ອາດຈະຖືກມອບໃຫ້ເປັນຕົວອັກສອນທີ່ສາມາດພິມໄດ້ເອງ, ຄ່າພິເສດ \t ເພື່ອໝາຍເຖິງ a
ລັກສະນະຕາຕະລາງ, ຫຼື 0x ຫຼັງຈາກນັ້ນ, ຄ່າເລກຖານສິບຫົກທີ່ອ່ານເປັນລະຫັດ ASCII ສໍາລັບ
ລັກສະນະ.

ລັກສະນະນີ້ຖືກນໍາໃຊ້ເປັນ ພາກສະຫນາມ separator ໃນເວລາອ່ານ CSV ຂໍ້ມູນ.

· ສາຍ ສິ້ນສຸດລົງ by

ເອົາຕົວອັກສອນດຽວເປັນການໂຕ້ຖຽງ, ເຊິ່ງຈະຕ້ອງພົບຢູ່ໃນວົງຢືມດຽວ, ແລະ
ອາດຈະຖືກມອບໃຫ້ເປັນຕົວອັກສອນທີ່ສາມາດພິມໄດ້ເອງ, ຄ່າພິເສດ \t ເພື່ອໝາຍເຖິງ a
ລັກສະນະຕາຕະລາງ, ຫຼື 0x ຫຼັງຈາກນັ້ນ, ຄ່າເລກຖານສິບຫົກທີ່ອ່ານເປັນລະຫັດ ASCII ສໍາລັບ
ລັກສະນະ.

ລັກສະນະນີ້ຖືກນໍາໃຊ້ເພື່ອຮັບຮູ້ ປາຍສາຍ ເງື່ອນໄຂໃນເວລາທີ່ອ່ານ CSV ຂໍ້ມູນ.

ນ້ໍາຫນັກ FIXED ຄໍລາສ


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກໄຟລ໌ຂໍ້ຄວາມທີ່ມີຖັນຈັດລຽງ
ຢູ່​ໃນ ຄົງ ຂະຫນາດ ລັກສະນະ. ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫຼດແກ້ໄຂ
ຈາກໃນແຖວ
(
a ຈາກ 0 ສໍາລັບ 10,
b ຈາກ 10 ສໍາລັບ 8,
c ຈາກ 18 ສໍາລັບ 8,
d ຈາກ 26 ສໍາລັບ 17 [null ຖ້າຫວ່າງເປົ່າ, ຕັດຊ່ອງຫວ່າງທາງຂວາ]
)
ເຂົ້າໄປໃນ postgresql:///pgloader?fixed
(
a, b,
c ໃຊ້​ເວ​ລາ (time-with-no-separator c),
d
)

ດ້ວຍການຫຍໍ້

SET client_encoding ເປັນ 'latin1',
work_mem ເປັນ '14MB',
standard_conforming_strings ກັບ 'on'

ກ່ອນການໂຫຼດເຮັດ
ຕາຕະລາງຫຼຸດລົງ $$ ຖ້າມີການສ້ອມແຊມ; $$,
$$ ສ້າງຕາຕະລາງຄົງທີ່ (
ຈຳນວນເຕັມ,
b ວັນທີ,
c ເວລາ,
d ຂໍ້ຄວາມ
);
$$;

01234567892008052011431250 ເບີທຳອິດ
01234562008052115182300 ຊ້າຍເດີມ ເອກະສານຄົບ
12345678902008052208231560ອີກສາຍ
2345609872014092914371500
2345678902014092914371520

ໄດ້ ຄົງ ຄໍາສັ່ງຮູບແບບຍອມຮັບຂໍ້ຕໍ່ໄປນີ້ແລະທາງເລືອກ:

· ຈາກ

ຊື່ໄຟລ໌ທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ຍອມຮັບ ກຳລັງເຂົ້າລະຫັດ ທາງເລືອກ. ໃຊ້
--list-encodes ທາງເລືອກທີ່ຈະຮູ້ວ່າຊື່ການເຂົ້າລະຫັດໃດໄດ້ຮັບການສະຫນັບສະຫນູນ.

ຊື່ໄຟລ໌ອາດຈະຖືກຫຸ້ມດ້ວຍວົງຢືມດຽວ, ແລະສາມາດເປັນຫນຶ່ງໃນຕໍ່ໄປນີ້
ຄຸນ​ຄ່າ​ພິ​ເສດ​:

· inline

ຂໍ້ມູນຖືກພົບເຫັນຫຼັງຈາກສິ້ນສຸດຂອງຄໍາສັ່ງທີ່ແຍກວິເຄາະ. ຈໍານວນເສັ້ນຫວ່າງໃດໆ
ລະຫວ່າງການສິ້ນສຸດຂອງຄໍາສັ່ງແລະການເລີ່ມຕົ້ນຂອງຂໍ້ມູນຖືກຍອມຮັບ.

· stdin

ອ່ານຂໍ້ມູນຈາກກະແສການປ້ອນຂໍ້ມູນມາດຕະຖານ.

ໄດ້ ຈາກ ທາງ​ເລືອກ​ຍັງ​ສະ​ຫນັບ​ສະ​ຫນູນ​ບັນ​ຊີ​ລາຍ​ຊື່​ທີ່​ແຍກ​ອອກ​ເປັນ​ເຄື່ອງ​ຫມາຍ​ຈຸດ​ທາງ​ເລືອກ​ຂອງ​ ພາກສະຫນາມ ຊື່​ອະ​ທິ​ບາຍ​
ສິ່ງທີ່ຄາດວ່າຈະຢູ່ໃນ FIXED ໄຟລ໌ຂໍ້ມູນ.

ຊື່ແຕ່ລະພາກສະຫນາມແມ່ນປະກອບດ້ວຍຊື່ພາກສະຫນາມຕາມດ້ວຍຕົວເລືອກຜູ້ອ່ານສະເພາະສໍາລັບ
ພາກສະຫນາມນັ້ນ. ທາງ​ເລືອກ​ຂອງ​ຜູ້​ອ່ານ​ຕໍ່​ພາກ​ສະ​ຫນາມ​ສະ​ຫນັບ​ສະ​ຫນູນ​ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​, ບ່ອນ​ທີ່​ພຽງ​ແຕ່​ ການເລີ່ມຕົ້ນ ແລະ
ຄວາມຍາວ ແມ່ນຕ້ອງການ.

· ການເລີ່ມຕົ້ນ

ວາງຕຳແໜ່ງໃນແຖວບ່ອນທີ່ຈະເລີ່ມອ່ານຄ່າຂອງຊ່ອງຂໍ້ມູນນັ້ນ. ສາມາດເຂົ້າກັບ
ຕົວເລກທົດສະນິຍົມ ຫຼື 0x ຈາກນັ້ນເລກຖານສິບຫົກ.

· ຄວາມຍາວ

ວິທີການຈໍານວນຫຼາຍ bytes ອ່ານຈາກ ການເລີ່ມຕົ້ນ ຕຳແໜ່ງເພື່ອອ່ານຄ່າຂອງຊ່ອງຂໍ້ມູນນັ້ນ. ຮູບແບບດຽວກັນ
as ການເລີ່ມຕົ້ນ.

ພາລາມິເຕີທາງເລືອກເຫຼົ່ານັ້ນຕ້ອງຖືກຕິດຢູ່ໃນວົງເລັບສີ່ຫຼ່ຽມ ແລະຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ:

· ສິ້ນສຸດລົງ by

ເບິ່ງລາຍລະອຽດຂອງ ພາກສະຫນາມ ສິ້ນສຸດລົງ by ຂ້າງລຸ່ມນີ້.

ການປຸງແຕ່ງທາງເລືອກນີ້ບໍ່ໄດ້ປະຕິບັດໃນປັດຈຸບັນ.

· ວັນ ຮູບແບບ

ໃນເວລາທີ່ພາກສະຫນາມຄາດວ່າຈະເປັນປະເພດວັນທີ, ຫຼັງຈາກນັ້ນທາງເລືອກນີ້ອະນຸຍາດໃຫ້ກໍານົດການ
ຮູບແບບວັນທີທີ່ໃຊ້ໃນໄຟລ໌.

ສະຕຣິງຮູບແບບວັນທີແມ່ນສະຕຣິງແມ່ແບບທີ່ສ້າງແບບຈໍາລອງກັບ PostgreSQL to_char
ສະ​ຫນັບ​ສະ​ຫນູນ​ສະ​ຕ​ຣິງ​ແມ່​ແບບ​, ຈໍາ​ກັດ​ຮູບ​ແບບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

· YYYY, YYY, YY ສໍາລັບພາກສ່ວນປີ

· MM ສໍາລັບພາກສ່ວນເດືອນຕົວເລກ

· DD ສໍາລັບພາກສ່ວນມື້ຕົວເລກ

· HH, HH12, HH24 ສໍາລັບພາກສ່ວນຊົ່ວໂມງ

· am, AM, am, AM

· ແລງ, ແລງ, ແລງ, ແລງ

· MI ສໍາລັບພາກສ່ວນນາທີ

· SS ສໍາລັບພາກສ່ວນວິນາທີ

· MS ສໍາລັບສ່ວນ milliseconds (4 ຕົວເລກ)

·ສະຫະລັດສໍາລັບ microseconds (6 ຕົວເລກ)

· ເຄື່ອງໝາຍວັກຕອນທີ່ບໍ່ໄດ້ວິເຄາະ: - . * # @ T / \ ແລະຊ່ອງ

ນີ້ແມ່ນຕົວຢ່າງຂອງ a ວັນ ຮູບແບບ ຂໍ້ມູນ:

ຊື່ຖັນ [ຮູບແບບວັນທີ 'YYYY-MM-DD HH24-MI-SS.US']

· null if

ຕົວເລືອກນີ້ໃຊ້ເວລາການໂຕ້ຖຽງເຊິ່ງເປັນຄໍາສໍາຄັນ ເປົ່າຫວ່າງ ຫຼືສອງວົງຢືມ
string

ເມື່ອ​ໃດ​ ເປົ່າຫວ່າງ ຖືກ​ນໍາ​ໃຊ້​ແລະ​ຄ່າ​ພາກ​ສະ​ຫນາມ​ທີ່​ຖືກ​ອ່ານ​ມີ​ພຽງ​ແຕ່​ຕົວ​ອັກ​ສອນ​ຍະ​ຫວ່າງ​,
ຫຼັງຈາກນັ້ນ, ມັນຈະຖືກປ່ຽນເປັນ SQL ໂດຍອັດຕະໂນມັດ NULL ມູນຄ່າ.

ເມື່ອສະຕຣິງທີ່ອ້າງອີງຄູ່ຖືກໃຊ້ ແລະສະຕຣິງນັ້ນຖືກອ່ານເປັນຄ່າຂອງຊ່ອງຂໍ້ມູນ, ຈາກນັ້ນ
ຄ່າພາກສະຫນາມຈະຖືກປ່ຽນເປັນ SQL ໂດຍອັດຕະໂນມັດ NULL ມູນຄ່າ.

· trim ທັງສອງ ຍະຫວ່າງ, trim ໄວ້ ຍະຫວ່າງ, trim ສິດ ຍະຫວ່າງ

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ຕັດ​ຊ່ອງ​ຂາວ​ໃນ​ຂໍ້​ມູນ​ທີ່​ອ່ານ​, ທັງ​ສອງ​ດ້ານ​ຂອງ​
ຂໍ້​ມູນ​, ຫຼື​ພຽງ​ແຕ່​ຕົວ​ອັກ​ສອນ​ຍະ​ຫວ່າງ​ທີ່​ພົບ​ເຫັນ​ຢູ່​ເບື້ອງ​ຊ້າຍ​ຂອງ​ການ​ສະ​ຕ​ຣີ​ພາບ​, ຫຼື​ພຽງ​ແຕ່​
ທີ່ຢູ່ເບື້ອງຂວາຂອງສາຍ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ FIXED ໄຟລ໌, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ a ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ກັບ PostgreSQL
ຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະອ່ານໄຟລ໌ຂໍ້ມູນ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ຂ້າມ header

ເອົາຄ່າຕົວເລກເປັນ argument. ແນະນຳ pgloader ໃຫ້ຂ້າມເສັ້ນຫຼາຍເສັ້ນນັ້ນຢູ່ທີ່
ການເລີ່ມຕົ້ນຂອງໄຟລ໌ປ້ອນຂໍ້ມູນ.

ນ້ໍາຫນັກ COPY ຟໍແມັດ ເອກະສານ


ຄຳສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫລດຈາກໄຟລ໌ທີ່ມີຂໍ້ມູນ COPY TEXT ເປັນ
ອະທິບາຍໄວ້ໃນເອກະສານ PostgreSQL. ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫຼດສຳເນົາ
ຈາກ copy://./data/track.copy
(
trackid, ຕິດຕາມ, ອັນລະບັ້ມ, ສື່, ປະເພດ, ນັກປະພັນ,
milliseconds, bytes, unitprice
)
ເຂົ້າໄປໃນ postgresql:///pgloader?track_full

ດ້ວຍການຫຍໍ້

SET client_encoding ເປັນ 'latin1',
work_mem ເປັນ '14MB',
standard_conforming_strings ກັບ 'on'

ກ່ອນການໂຫຼດເຮັດ
$$ drop table ຖ້າມີ track_full; $$,
$$ ສ້າງຕາຕະລາງ track_full (
ຕິດຕາມ bigserial,
ຕິດ​ຕາມ​ຂໍ້​ຄວາມ​,
ຂໍ້ຄວາມອັນລະບັ້ມ,
ຂໍ້​ຄວາມ​ສື່​ມວນ​ຊົນ​,
ປະເພດຂໍ້ຄວາມ,
ບົດ​ຄວາມ​ປະ​ກອບ​,
milliseconds ໃຫຍ່,
bytes ໃຫຍ່,
ຕົວເລກ unitprice
);
$$;

ໄດ້ COPY ຄໍາສັ່ງຮູບແບບຍອມຮັບຂໍ້ຕໍ່ໄປນີ້ແລະທາງເລືອກ:

· ຈາກ

ຊື່ໄຟລ໌ທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ນີ້ສະຫນັບສະຫນູນໄຟລ໌ທ້ອງຖິ່ນ, HTTP URLs ແລະ zip
ໄຟລ໌ທີ່ມີໄຟລ໌ dbf ດຽວທີ່ມີຊື່ດຽວກັນ. ເອົາໄຟລ໌ zip ດັ່ງກ່າວຈາກ an
ແນ່ນອນ, ທີ່ຢູ່ HTTP ແມ່ນສະຫນັບສະຫນູນ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ COPY ໄຟລ໌, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

· ຕົວຂັ້ນ

ເອົາຕົວອັກສອນດຽວເປັນການໂຕ້ຖຽງ, ເຊິ່ງຈະຕ້ອງພົບຢູ່ໃນວົງຢືມດຽວ, ແລະ
ອາດຈະຖືກມອບໃຫ້ເປັນຕົວອັກສອນທີ່ສາມາດພິມໄດ້ເອງ, ຄ່າພິເສດ \t ເພື່ອໝາຍເຖິງ a
ລັກສະນະຕາຕະລາງ, ຫຼື 0x ຫຼັງຈາກນັ້ນ, ຄ່າເລກຖານສິບຫົກທີ່ອ່ານເປັນລະຫັດ ASCII ສໍາລັບ
ລັກສະນະ.

ລັກສະນະນີ້ຖືກນໍາໃຊ້ເປັນ ຕົວຂັ້ນ ໃນເວລາທີ່ອ່ານຂໍ້ມູນ, ໃນລັກສະນະທີ່ຄ້າຍຄືກັນກັບ
PostgreSQL COPY ທາງເລືອກ.

· null

ເອົາສະຕຣິງທີ່ອ້າງອີງເປັນການໂຕ້ຖຽງ (ວົງຢືມສາມາດເປັນວົງຢືມຄູ່ ຫຼື ດ່ຽວ
quotes) ແລະໃຊ້ string ທີ່ເປັນ NULL ການເປັນຕົວແທນໃນຂໍ້ມູນ.

ນີ້ແມ່ນຄ້າຍຄືກັນກັບ null COPY ທາງເລືອກໃນ PostgreSQL.

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ a ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ກັບ PostgreSQL
ຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະອ່ານໄຟລ໌ຂໍ້ມູນ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ຂ້າມ header

ເອົາຄ່າຕົວເລກເປັນ argument. ແນະນຳ pgloader ໃຫ້ຂ້າມເສັ້ນຫຼາຍເສັ້ນນັ້ນຢູ່ທີ່
ການເລີ່ມຕົ້ນຂອງໄຟລ໌ປ້ອນຂໍ້ມູນ.

ນ້ໍາຫນັກ dbf


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫລດຂໍ້ມູນຈາກ a dbf ໄຟລ໌. ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫລດ DBF
ຈາກ http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/reg2013.dbf
ເຂົ້າໄປໃນ postgresql://user@localhost/dbname
ດ້ວຍການຕັດ, ສ້າງຕາຕະລາງ;

ໄດ້ dbf ຄໍາສັ່ງຮູບແບບຍອມຮັບຂໍ້ຕໍ່ໄປນີ້ແລະທາງເລືອກ:

· ຈາກ

ຊື່ໄຟລ໌ທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ນີ້ສະຫນັບສະຫນູນໄຟລ໌ທ້ອງຖິ່ນ, HTTP URLs ແລະ zip
ໄຟລ໌ທີ່ມີໄຟລ໌ dbf ດຽວທີ່ມີຊື່ດຽວກັນ. ເອົາໄຟລ໌ zip ດັ່ງກ່າວຈາກ an
ແນ່ນອນ, ທີ່ຢູ່ HTTP ແມ່ນສະຫນັບສະຫນູນ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ dbf ໄຟລ໌, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ a ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ກັບ PostgreSQL
ຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະອ່ານໄຟລ໌ຂໍ້ມູນ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ສ້າງ ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ສ້າງຕາຕະລາງໂດຍໃຊ້ຂໍ້ມູນ meta ທີ່ພົບໃນ
ໄດ້ dbf ໄຟລ໌, ເຊິ່ງຕ້ອງມີບັນຊີລາຍຊື່ຂອງຊ່ອງຂໍ້ມູນທີ່ມີປະເພດຂໍ້ມູນຂອງເຂົາເຈົ້າ. ມາດຕະຖານ
ການປ່ຽນປະເພດຂໍ້ມູນຈາກ DBF ເປັນ PostgreSQL ແມ່ນແລ້ວ.

· ຕາຕະລາງ ຊື່

ທາງເລືອກນີ້ຄາດວ່າມູນຄ່າຂອງມັນອາດຈະເປັນຊື່ທີ່ມີຄຸນສົມບັດຂອງຕາຕະລາງທີ່ຈະສ້າງ.

ນ້ໍາຫນັກ IXF


ຄຳສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກ IBM IXF ໄຟລ໌. ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫລດ IXF
ຈາກ data/nsitra.test1.ixf
ເຂົ້າໄປໃນ postgresql:///pgloader?nsitra.test1
ດ້ວຍການຕັດສັ້ນ, ສ້າງຕາຕະລາງ

ກ່ອນການໂຫຼດເຮັດ
$$ ສ້າງ schema ຖ້າບໍ່ມີ nsitra; $$,
$$ drop table ຖ້າມີ nsitra.test1; $$;

ໄດ້ ixf ຄໍາສັ່ງຮູບແບບຍອມຮັບຂໍ້ຕໍ່ໄປນີ້ແລະທາງເລືອກ:

· ຈາກ

ຊື່ໄຟລ໌ທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ນີ້ສະຫນັບສະຫນູນໄຟລ໌ທ້ອງຖິ່ນ, HTTP URLs ແລະ zip
ໄຟລ໌ທີ່ມີໄຟລ໌ ixf ດຽວທີ່ມີຊື່ດຽວກັນ. ເອົາໄຟລ໌ zip ດັ່ງກ່າວຈາກ an
ແນ່ນອນ, ທີ່ຢູ່ HTTP ແມ່ນສະຫນັບສະຫນູນ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ IXF ໄຟລ໌, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ a ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ກັບ PostgreSQL
ຕາຕະລາງເປົ້າຫມາຍກ່ອນທີ່ຈະອ່ານໄຟລ໌ຂໍ້ມູນ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ສ້າງ ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ສ້າງຕາຕະລາງໂດຍໃຊ້ຂໍ້ມູນ meta ທີ່ພົບໃນ
ໄດ້ dbf ໄຟລ໌, ເຊິ່ງຕ້ອງມີບັນຊີລາຍຊື່ຂອງຊ່ອງຂໍ້ມູນທີ່ມີປະເພດຂໍ້ມູນຂອງເຂົາເຈົ້າ. ມາດຕະຖານ
ການປ່ຽນປະເພດຂໍ້ມູນຈາກ DBF ເປັນ PostgreSQL ແມ່ນແລ້ວ.

· ຕາຕະລາງ ຊື່

ທາງເລືອກນີ້ຄາດວ່າມູນຄ່າຂອງມັນອາດຈະເປັນຊື່ທີ່ມີຄຸນສົມບັດຂອງຕາຕະລາງທີ່ຈະສ້າງ.

ນ້ໍາຫນັກ ARCHIVE


ຄຳສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກໜຶ່ງ ຫຼືຫຼາຍກວ່າໜຶ່ງໄຟລ໌ທີ່ບັນຈຸຢູ່ໃນ
ຮວບຮວມ. ໃນ​ປັດ​ຈຸ​ບັນ​ຮູບ​ແບບ​ການ​ເກັບ​ຮັກ​ສາ​ສະ​ຫນັບ​ສະ​ຫນູນ​ພຽງ​ແຕ່​ແມ່ນ​ ໄປສະນີ, ແລະຮວບຮວມອາດຈະເປັນ
ດາວ​ໂຫຼດ​ຈາກ​ HTTP Url.

ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫລດ archive
ຈາກ /Users/dim/Downloads/GeoLiteCity-latest.zip
ເຂົ້າໄປໃນ postgresql:///ip4r

ກ່ອນການໂຫຼດ
ເຮັດ $$ ສ້າງ extension ຖ້າບໍ່ມີ ip4r; $$,
$$ ສ້າງ schema ຖ້າບໍ່ມີ geolite; $$,

ປະຕິບັດ 'geolite.sql'

ໂຫລດ CSV
ຈາກ FILENAME Matching ~/GeoLiteCity-Location.csv/
ດ້ວຍການເຂົ້າລະຫັດ iso-8859-1
(
locId,
ປະເທດ,
ພາກພື້ນ null ຖ້າຫວ່າງເປົ່າ,
ນະຄອນ null ຖ້າຫວ່າງເປົ່າ,
ລະຫັດໄປສະນີ null ຖ້າຫວ່າງເປົ່າ,
ເສັ້ນ​ຂະ​ຫນານ​,
ເສັ້ນແວງ,
metroCode null ຖ້າຫວ່າງເປົ່າ,
ລະຫັດພື້ນທີ່ null ຖ້າຫວ່າງເປົ່າ
)
ເຂົ້າໄປໃນ postgresql:///ip4r?geolite.location
(
ສະຖານທີ່, ປະເທດ, ພາກພື້ນ, ເມືອງ, ລະຫັດໄປສະນີ,
ຈຸດ​ທີ່​ຕັ້ງ​ໂດຍ​ການ​ນໍາ​ໃຊ້ (ຮູບ​ແບບ nil "(~​, ~ a​)​" ເສັ້ນ​ແວງ​ເສັ້ນ​ແວງ​,
metroCode,ລະຫັດພື້ນທີ່
)
ດ້ວຍຫົວຂໍ້ຂ້າມ = 2,
ຊ່ອງຂໍ້ມູນປິດລ້ອມເປັນທາງເລືອກໂດຍ ´"´,
ທົ່ງນາທີ່ຫລົບຫນີໂດຍການອ້າງອີງສອງເທົ່າ,
ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ ','

ແລະໂຫລດ CSV
ຈາກ FILENAME Matching ~/GeoLiteCity-Blocks.csv/
ດ້ວຍການເຂົ້າລະຫັດ iso-8859-1
(
startIpNum, endIpNum, locId
)
ເຂົ້າໄປໃນ postgresql:///ip4r?geolite.blocks
(
iprange ip4r ໂດຍໃຊ້ (ip-range startIpNum endIpNum),
locId
)
ດ້ວຍຫົວຂໍ້ຂ້າມ = 2,
ຊ່ອງຂໍ້ມູນປິດລ້ອມເປັນທາງເລືອກໂດຍ ´"´,
ທົ່ງນາທີ່ຫລົບຫນີໂດຍການອ້າງອີງສອງເທົ່າ,
ຊ່ອງຂໍ້ມູນຖືກຢຸດໂດຍ ','

ສຸດທ້າຍເຮັດ
$$ ສ້າງ index blocks_ip4r_idx ໃນ geolite.blocks ໂດຍໃຊ້ gist(iprange); $$;

ໄດ້ ເກັບ ຄໍາສັ່ງຍອມຮັບຂໍ້ແລະທາງເລືອກຕໍ່ໄປນີ້:

· ຈາກ

ຊື່ໄຟລ໌ ຫຼື HTTP URI ບ່ອນທີ່ຈະໂຫລດຂໍ້ມູນຈາກ. ເມື່ອໃຫ້ HTTP URL ທີ່ເຊື່ອມຕໍ່
ໄຟລ໌ຈະຖືກດາວໂຫຼດຢູ່ໃນເຄື່ອງກ່ອນການປະມວນຜົນ.

ຖ້າໄຟລ໌ແມ່ນ ກ ໄປສະນີ ໄຟລ໌, ຜົນປະໂຫຍດແຖວຄໍາສັ່ງ unzip ຖືກນໍາໃຊ້ເພື່ອຂະຫຍາຍ
ເກັບໄວ້ໃນໄຟລ໌ໃນ $TMPDIR, ຫຼື / tmp if $TMPDIR ບໍ່ໄດ້ຕັ້ງ ຫຼືຕັ້ງເປັນອັນທີ່ບໍ່ມີຢູ່ແລ້ວ
ລະບົບ.

ຫຼັງຈາກນັ້ນ, ຄໍາສັ່ງຕໍ່ໄປນີ້ແມ່ນໃຊ້ຈາກໄດເລກະທໍລີລະດັບເທິງທີ່ບ່ອນເກັບມ້ຽນ
ໄດ້ຮັບການຂະຫຍາຍ.

· ຄໍາ​ສັ່ງ [ ແລະ ຄໍາ​ສັ່ງ ... ]

ຊຸດຄຳສັ່ງຕໍ່ກັບເນື້ອໃນຂອງແຟ້ມຈັດເກັບ, ໃນເວລານີ້ເທົ່ານັ້ນ
CSV,'ແກ້ໄຂແລ້ວ ແລະ dbf ຄໍາ​ສັ່ງ​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​.

ໃຫ້ສັງເກດວ່າຄໍາສັ່ງແມ່ນສະຫນັບສະຫນູນຂໍ້ກໍານົດ ຈາກ ຊື່​ເອ​ກະ​ສານ ການສົນທະນາ ເຊິ່ງອະນຸຍາດໃຫ້
pgloader ຄໍາສັ່ງບໍ່ໃຫ້ຂຶ້ນກັບຊື່ທີ່ແນ່ນອນຂອງໄດເລກະທໍລີ archive.

ປະໂຫຍກດຽວກັນຍັງສາມາດຖືກນໍາໄປໃຊ້ກັບຫຼາຍໆໄຟລ໌ໂດຍໃຊ້ການສະກົດຄໍາ ຈາກ ທັງຫມົດ
FILENAMES ການສົນທະນາ ແລະການສະແດງອອກເປັນປົກກະຕິ.

ທັງ​ຫມົດ ການຈັບຄູ່ clause ຕ້ອງປະຕິບັດຕາມກົດລະບຽບດັ່ງຕໍ່ໄປນີ້:

ຈາກ [ ALL FILENAMES | [ FIRST ] FILENAME ] ການຈັບຄູ່

· ສຸດທ້າຍ DO

SQL Queries ເພື່ອດໍາເນີນການເມື່ອຂໍ້ມູນຖືກໂຫລດ, ເຊັ່ນ: ສ້າງ INDEX.

ນ້ໍາຫນັກ MySQL DATABASE


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກການເຊື່ອມຕໍ່ຖານຂໍ້ມູນ. ເທົ່ານັ້ນ
ແຫຼ່ງຖານຂໍ້ມູນທີ່ຮອງຮັບແມ່ນປະຈຸບັນ MySQL, ແລະ pgloader ສະຫນັບສະຫນູນການແປງແບບໄດນາມິກ
schema ຂອງຖານຂໍ້ມູນແຫຼ່ງແລະການສ້າງດັດສະນີ.

ຊຸດມາດຕະຖານການຄາສທ໌ແມ່ນໃຫ້ມາ ແລະອາດຈະຖືກບັນຈຸເກີນ ແລະຖືກຕື່ມໃສ່ໂດຍ
ຄໍາສັ່ງ.

ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫຼດຖານຂໍ້ມູນ
ຈາກ mysql:// root@localhost/sakila
INTO postgresql://localhost:54393/sakila

ດ້ວຍ​ການ​ປະ​ກອບ​ມີ​ການ​ຫຼຸດ​ລົງ​, ສ້າງ​ຕາ​ຕະ​ລາງ​, ສ້າງ​ດັດ​ຊະ​ນີ​, ປັບ​ລໍາ​ດັບ​

SET maintenance_work_mem ເປັນ '128MB',
work_mem ເປັນ '12MB',
search_path ກັບ 'sakila'

CAST type datetime ກັບ timestamptz drop default drop ບໍ່ແມ່ນ null ໂດຍໃຊ້ zero-dates-to-null,
ພິມວັນທີ drop ບໍ່ແມ່ນ null drop ເລີ່ມຕົ້ນໂດຍໃຊ້ zero-dates-to-null,
-- ພິມ tinyint ກັບ boolean ໂດຍໃຊ້ tinyint-to-boolean,
ພິມປີໄປຫາຈໍານວນເຕັມ

MATERIALIZE VIEWS film_list, staff_list

-- ລວມທັງການຈັບຄູ່ຊື່ຕາຕະລາງເທົ່ານັ້ນ ~/ຮູບເງົາ/, 'ນັກສະແດງ'
-- ບໍ່ລວມເອົາຊື່ຕາຕະລາງທີ່ກົງກັນ ~
-- ການຖອດລະຫັດຊື່ຕາຕະລາງທີ່ກົງກັນ ~/messed/, ~/ການເຂົ້າລະຫັດ/ ເປັນ utf8

ກ່ອນການໂຫຼດເຮັດ
$$ ສ້າງ schema ຖ້າບໍ່ມີ sakila; $$;

ໄດ້ ຖານຂໍ້ມູນ ຄໍາສັ່ງຍອມຮັບຂໍ້ແລະທາງເລືອກຕໍ່ໄປນີ້:

· ຈາກ

ຕ້ອງເປັນ URL ເຊື່ອມຕໍ່ທີ່ຊີ້ໄປຫາຖານຂໍ້ມູນ MySQL. ໃນປັດຈຸບັນມີພຽງແຕ່ MySQL ເທົ່ານັ້ນ
ສະ​ຫນັບ​ສະ​ຫນູນ​ເປັນ​ແຫຼ່ງ pgloader​.

ຖ້າການເຊື່ອມຕໍ່ URI ມີຊື່ຕາຕະລາງ, ຫຼັງຈາກນັ້ນພຽງແຕ່ຕາຕະລາງນີ້ຖືກຍ້າຍຈາກ
MySQL ກັບ PostgreSQL.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ MySQL ຖານຂໍ້ມູນ, ທາງເລືອກຕໍ່ໄປນີ້ໄດ້ຮັບການສະຫນັບສະຫນູນ, ແລະ
ຄວາມຜິດພາດ ກັບ ຂໍ້ແມ່ນ: no ລຳ ຕົ້ນ, ສ້າງ ຕາຕະລາງ, ປະກອບດ້ວຍ ວາງ, ສ້າງ ດັດສະນີ, reset
ລໍາດັບ, ຕ່າງປະເທດ ໃຊ້, ຕົວນ້ອຍ ຕົວລະບຸຕົວຕົນ.

ກັບ ຕົວເລືອກ:

· ປະກອບດ້ວຍ ວາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຫຼຸດລົງຕາຕະລາງທັງຫມົດໃນ PostgreSQL ເປົ້າຫມາຍ
ຖານຂໍ້ມູນທີ່ມີຊື່ປາກົດຢູ່ໃນຖານຂໍ້ມູນ SQLite. ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ນໍາໃຊ້
ຄໍາສັ່ງດຽວກັນຫຼາຍຄັ້ງຕິດຕໍ່ກັນຈົນກ່ວາທ່ານຄິດອອກທາງເລືອກທັງຫມົດ, ເລີ່ມຕົ້ນ
ອັດຕະໂນມັດຈາກສະພາບແວດລ້ອມທີ່ສະອາດ. ກະລຸນາສັງເກດວ່າ CASCADE ຖືກນໍາໃຊ້ເພື່ອຮັບປະກັນ
ຕາຕະລາງນັ້ນຖືກລຸດລົງເຖິງແມ່ນວ່າຈະມີກະແຈຕ່າງປະເທດຊີ້ໄປຫາພວກມັນ. ນີ້​ແມ່ນ
ຊັດເຈນວ່າແມ່ນຫຍັງ ປະກອບດ້ວຍ ວາງ ມີຈຸດປະສົງເພື່ອເຮັດ: ຖິ້ມຕາຕະລາງເປົ້າຫມາຍທັງຫມົດແລະສ້າງໃຫມ່
ໃຫ້ເຂົາເຈົ້າ.

ການ​ນໍາ​ໃຊ້​ທີ່​ຍິ່ງ​ໃຫຍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ດູ​ແລ​ ປະກອບດ້ວຍ ວາງ, ຍ້ອນວ່າມັນຈະ cascade ກັບ ທັງຫມົດ
ວັດຖຸອ້າງອີງຕາຕະລາງເປົ້າຫມາຍ, ອາດຈະລວມທັງຕາຕະລາງອື່ນໆທີ່ບໍ່ແມ່ນ
ຖືກໂຫລດຈາກແຫຼ່ງ DB.

· ປະກອບດ້ວຍ no ວາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຈະບໍ່ປະກອບມີໃດໆ ຢຸດ ຖະແຫຼງການໃນເວລາໂຫຼດ
ຂໍ້ມູນ.

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ແຕ່ລະຄົນ
ຕາຕະລາງ PostgreSQL ກ່ອນການໂຫຼດຂໍ້ມູນໃສ່ມັນ.

· no ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ມີບັນຫາທີ່ບໍ່ມີ ພະຍາຍາມ ຄໍາສັ່ງ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ສ້າງ ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ສ້າງຕາຕະລາງໂດຍໃຊ້ຂໍ້ມູນ meta ທີ່ພົບໃນ
ໄດ້ MySQL ໄຟລ໌, ເຊິ່ງຕ້ອງມີບັນຊີລາຍຊື່ຂອງຊ່ອງຂໍ້ມູນທີ່ມີປະເພດຂໍ້ມູນຂອງເຂົາເຈົ້າ. ມາດຕະຖານ
ການປ່ຽນປະເພດຂໍ້ມູນຈາກ DBF ເປັນ PostgreSQL ແມ່ນແລ້ວ.

· ສ້າງ no ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຂ້າມການສ້າງຕາຕະລາງກ່ອນທີ່ຈະວາງຂໍ້ມູນ,
ຕາຕະລາງເປົ້າຫມາຍຕ້ອງມີຢູ່ແລ້ວ.

· ສ້າງ ດັດສະນີ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ໄດ້ຮັບຄໍານິຍາມຂອງດັດສະນີທັງຫມົດທີ່ພົບເຫັນຢູ່ໃນ
ຖານຂໍ້ມູນ MySQL ແລະສ້າງຊຸດດຽວກັນຂອງຄໍານິຍາມດັດສະນີຕໍ່ກັບ PostgreSQL
ຖານຂໍ້ມູນ.

· ສ້າງ no ດັດສະນີ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຈະຂ້າມການສ້າງດັດສະນີ.

· ເປັນເອກະລັກ ດັດຊະນີ ຊື່, ຮັກສາ ດັດຊະນີ ຊື່

ຊື່ດັດສະນີ MySQL ແມ່ນເປັນເອກະລັກຕໍ່ຕາຕະລາງ, ໃນຂະນະທີ່ຊື່ດັດສະນີ PostgreSQL ຕ້ອງມີ
ເປັນເອກະລັກຕໍ່ schema. ຄ່າເລີ່ມຕົ້ນສໍາລັບ pgloader ແມ່ນການປ່ຽນຊື່ດັດສະນີໂດຍການໃສ່ຄໍານໍາຫນ້າ
ມັນກັບ idx_OID ບ່ອນທີ່ OID ແມ່ນຕົວລະບຸຕົວເລກພາຍໃນຂອງຕາຕະລາງທີ່ດັດຊະນີແມ່ນ
ສ້າງຕໍ່ຕ້ານ.

ໃນບາງກໍລະນີເຊັ່ນເມື່ອ DDL ຖືກປະໄວ້ທັງຫມົດໃນກອບມັນອາດຈະເປັນເລື່ອງທີ່ສົມເຫດສົມຜົນ
ສໍາລັບ pgloader ທີ່ຈະລະເວັ້ນຈາກການຈັດການດັດສະນີຊື່ເປັນເອກະລັກ, ບັນລຸໄດ້ໂດຍການນໍາໃຊ້
ໄດ້ ຮັກສາ ດັດຊະນີ ຊື່ ທາງເລືອກ.

ຄ່າເລີ່ມຕົ້ນແມ່ນເພື່ອ ເປັນເອກະລັກ ດັດຊະນີ ຊື່.

ເຖິງແມ່ນວ່າໃນເວລາທີ່ການນໍາໃຊ້ທາງເລືອກ ຮັກສາ ດັດຊະນີ ຊື່, ດັດສະນີຫຼັກຕົ້ນຕໍ MySQL ຊື່
"ປະຖົມ" ຈະໄດ້ຮັບຊື່ຂອງເຂົາເຈົ້າເປັນເອກະລັກ. ການບໍ່ເຮັດແນວນັ້ນຈະປ້ອງກັນການປະຖົມ
ປຸ່ມທີ່ຈະສ້າງອີກເທື່ອຫນຶ່ງໃນ PostgreSQL ບ່ອນທີ່ຊື່ດັດສະນີຕ້ອງເປັນເອກະລັກຕໍ່
ແຜນຜັງ.

· ຕ່າງປະເທດ ໃຊ້

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ໄດ້ຮັບຄໍານິຍາມຂອງກະແຈຕ່າງປະເທດທັງໝົດ
ພົບເຫັນຢູ່ໃນຖານຂໍ້ມູນ MySQL ແລະສ້າງຊຸດດຽວກັນຂອງຄໍານິຍາມທີ່ສໍາຄັນຕ່າງປະເທດຕໍ່ກັບ
ຖານຂໍ້ມູນ PostgreSQL.

· no ຕ່າງປະເທດ ໃຊ້

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຂ້າມການສ້າງກະແຈຕ່າງປະເທດ.

· reset ລໍາດັບ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, ໃນຕອນທ້າຍຂອງການໂຫຼດຂໍ້ມູນແລະຫຼັງຈາກດັດສະນີມີ
ທັງຫມົດໄດ້ຖືກສ້າງຂື້ນ, pgloader ປັບລໍາດັບ PostgreSQL ທັງຫມົດທີ່ສ້າງເປັນປະຈຸບັນ
ຄ່າສູງສຸດຂອງຖັນທີ່ເຂົາເຈົ້າຕິດຢູ່.

ທາງເລືອກ ໂຄງ ພຽງແຕ່ ແລະ ຂໍ້ມູນ ພຽງແຕ່ ບໍ່ມີຜົນຕໍ່ທາງເລືອກນີ້.

· reset no ລໍາດັບ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຂ້າມການຕັ້ງລໍາດັບໃຫມ່ຫຼັງຈາກການໂຫຼດ.

ທາງເລືອກ ໂຄງ ພຽງແຕ່ ແລະ ຂໍ້ມູນ ພຽງແຕ່ ບໍ່ມີຜົນຕໍ່ທາງເລືອກນີ້.

· ຕົວນ້ອຍ ຕົວລະບຸຕົວຕົນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ປ່ຽນຕົວລະບຸ MySQL ທັງຫມົດ (ຊື່ຕາຕະລາງ,
ຊື່ດັດສະນີ, ຊື່ຖັນ) ເຖິງ ຕົວນ້ອຍ, ຍົກເວັ້ນສໍາລັບ PostgreSQL ສະຫງວນໄວ້ ຄໍາສໍາຄັນ.

PostgreSQL ສະຫງວນໄວ້ ຄໍາສໍາຄັນແມ່ນຖືກກໍານົດໂດຍການເຄື່ອນໄຫວໂດຍການນໍາໃຊ້ລະບົບ
ຫນ້າທີ່ pg_get_keywords().

· quote ຕົວລະບຸຕົວຕົນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອ້າງເຖິງຕົວລະບຸ MySQL ທັງຫມົດເພື່ອໃຫ້ກໍລະນີຂອງພວກເຂົາ
ເປັນທີ່ເຄົາລົບ. ໃຫ້ສັງເກດວ່າຫຼັງຈາກນັ້ນທ່ານຈະຕ້ອງເຮັດສິ່ງດຽວກັນໃນຄໍາຮ້ອງສະຫມັກຂອງທ່ານ
ການສອບຖາມລະຫັດ.

· ໂຄງ ພຽງແຕ່

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້ pgloader ຫຼີກລ່ຽງການຍ້າຍຂໍ້ມູນ. ໃຫ້ສັງເກດວ່າ
schema ໃນສະພາບການນີ້ປະກອບມີດັດຊະນີໃນເວລາທີ່ທາງເລືອກ ສ້າງ ດັດສະນີ ມີ
ຖືກລະບຸໄວ້.

· ຂໍ້ມູນ ພຽງແຕ່

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້ pgloader ພຽງແຕ່ບັນຫາ COPY ຖະແຫຼງການ, ໂດຍບໍ່ມີການດໍາເນີນການໃດໆ
ການ​ປຸງ​ແຕ່ງ​ອື່ນໆ​.

· ສົ່ງສັນຍານ

ຂໍ້ກໍານົດການສົ່ງສັນຍານອະນຸຍາດໃຫ້ກໍານົດກົດລະບຽບການສົ່ງສັນຍານແບບກໍານົດເອງ, ບໍ່ວ່າຈະເປັນການໂຫຼດເກີນຄ່າເລີ່ມຕົ້ນ
ກົດ​ລະ​ບຽບ​ການ​ຄັດ​ເລືອກ​ຫຼື​ການ​ປັບ​ປຸງ​ໃຫ້​ເຂົາ​ເຈົ້າ​ມີ​ກໍ​ລະ​ນີ​ພິ​ເສດ​.

ຄາດ​ວ່າ​ກົດ​ລະ​ບຽບ​ການ​ຄັດ​ເລືອກ​ຈະ​ປະ​ຕິ​ບັດ​ຕາມ​ຫນຶ່ງ​ໃນ​ຮູບ​ແບບ​:

ປະເພດ [ ... ] ເຖິງ [ ... ]
ຖັນ . [ ] ເຖິງ ...

ມັນເປັນໄປໄດ້ສໍາລັບ a casting ກົດລະບຽບ ເພື່ອຈັບຄູ່ກັບປະເພດຂໍ້ມູນ MySQL ຫຼືຕໍ່ກັບ a
ໄດ້ຮັບ ຖັນ ຊື່ ໃນໃຫ້ ຕາຕະລາງ ຊື່. ຄວາມຍືດຫຍຸ່ນນັ້ນອະນຸຍາດໃຫ້ຮັບມືກັບກໍລະນີທີ່
ປະເພດ ນ້ອຍ tiny ອາດຈະຖືກນໍາໃຊ້ເປັນ ປຸ້ຍ ໃນບາງກໍລະນີແຕ່ເປັນ ຂະຫນາດນ້ອຍ in
ອື່ນໆ.

ໄດ້ casting ກົດລະບຽບ ຖືກ​ນໍາ​ໃຊ້​ໃນ​ຄໍາ​ສັ່ງ​, ການ​ແຂ່ງ​ຂັນ​ຄັ້ງ​ທໍາ​ອິດ​ປ້ອງ​ກັນ​ບໍ່​ໃຫ້​ກົດ​ລະ​ບຽບ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​
ຖືກ ນຳ ໃຊ້, ແລະກົດລະບຽບທີ່ຜູ້ໃຊ້ ກຳ ນົດແມ່ນຖືກປະເມີນກ່ອນ.

ກອງ​ທີ່​ສະ​ຫນັບ​ສະ​ຫນູນ​ແມ່ນ​:

· ໃນເວລາທີ່ Default 'ຄ່າ'

ກົດລະບຽບການສົ່ງສັນຍານແມ່ນໃຊ້ກັບຖັນ MySQL ຂອງປະເພດແຫຼ່ງທີ່ມີເທົ່ານັ້ນ
ໄດ້ຮັບ ມູນຄ່າ, ເຊິ່ງຕ້ອງເປັນສະຕຣິງທີ່ຍົກມາອັນດຽວ ຫຼືສອງອັນ.

· ໃນເວລາທີ່ typemod ການສະແດງອອກ

ກົດລະບຽບການສົ່ງສັນຍານແມ່ນໃຊ້ກັບຖັນ MySQL ຂອງປະເພດແຫຼ່ງທີ່ມີ a
typemod ຄ່າທີ່ກົງກັບທີ່ໃຫ້ typemod ການສະແດງອອກ. ໄດ້ typemod ຖືກແຍກອອກເປັນຂອງມັນ
ຄວາມຖືກຕ້ອງ ແລະ ຂະຫນາດ ສ່ວນປະກອບ

ຕົວຢ່າງຂອງກົດລະບຽບການໂຍນໂດຍໃຊ້ a typemod ກອງ:

type char when (= precision 1) to char keep typemod

ການສະແດງອອກນີ້ໂຍນ MySQL char(1​) ຖັນໃສ່ຖັນ PostgreSQL ຂອງປະເພດ char(1​) ໃນຂະນະທີ່
ອະນຸຍາດໃຫ້ສໍາລັບກໍລະນີທົ່ວໄປ char(N) ຈະຖືກປ່ຽນໂດຍກົດລະບຽບການຄາສທເລີ່ມຕົ້ນເປັນ a
ປະເພດ PostgreSQL varchar(N).

· ກັບ ພິເສດ auto_increment

ກົດລະບຽບການສົ່ງສັນຍານພຽງແຕ່ຖືກນໍາໃຊ້ຕໍ່ກັບຖັນ MySQL ທີ່ມີ ພິເສດ ຖັນ
auto_increment ທາງ​ເລືອກ​ທີ່​ກໍາ​ນົດ​ໄວ້​, ດັ່ງ​ນັ້ນ​ມັນ​ເປັນ​ໄປ​ໄດ້​ທີ່​ຈະ​ເປົ້າ​ຫມາຍ eg serial ແທນ​ທີ່​ຈະ
integer.

ພຶດຕິກຳການຈັບຄູ່ເລີ່ມຕົ້ນ, ເມື່ອຕົວເລືອກນີ້ບໍ່ຖືກຕັ້ງ, ແມ່ນການຈັບຄູ່ຖັນທັງສອງ
ມີຄໍານິຍາມພິເສດແລະບໍ່ມີ.

ນີ້ຫມາຍຄວາມວ່າຖ້າທ່ານຕ້ອງການປະຕິບັດກົດລະບຽບການສົ່ງສັນຍານທີ່ເປົ້າຫມາຍທັງສອງ serial or
integer ຈາກ ຂະຫນາດນ້ອຍ ຄໍານິຍາມຂຶ້ນຢູ່ກັບ auto_increment ນ້ອຍ​ພິ​ເສດ​ຂອງ​
ຂໍ້ມູນຈາກ MySQL, ຫຼັງຈາກນັ້ນທ່ານຈໍາເປັນຕ້ອງສະກົດສອງກົດລະບຽບການສົ່ງສັນຍານດັ່ງຕໍ່ໄປນີ້:

ພິມ smallint ດ້ວຍການເພີ່ມ auto_increment
ເພື່ອ serial drop typemod ຮັກສາໄວ້ໃນຕອນຕົ້ນບໍ່ໃຫ້ null,
ພິມນ້ອຍ
to integer drop typemod ຮັກສາໄວ້ໃນຕອນຕົ້ນບໍ່ໃຫ້ null

ທາງ​ເລືອກ​ການ​ສາຍ​ສະ​ຫນັບ​ສະ​ຫນູນ​ແມ່ນ​:

· ວາງ Default, ຮັກສາ Default

ໃນເວລາທີ່ທາງເລືອກ ວາງ Default ຖືກລະບຸໄວ້, pgloader ຫຼຸດລົງການສະແດງອອກເລີ່ມຕົ້ນທີ່ມີຢູ່ແລ້ວ
ໃນຖານຂໍ້ມູນ MySQL ສໍາລັບຄໍລໍາຂອງປະເພດແຫຼ່ງຈາກ ສ້າງ ຕາຕະລາງ ຄໍາຖະແຫຼງທີ່
ມັນສ້າງ.

ການສະກົດຄໍາ ຮັກສາ Default ປ້ອງກັນພຶດຕິກຳນັ້ນຢ່າງຈະແຈ້ງ ແລະສາມາດນຳໃຊ້ໄດ້
overload ກົດລະບຽບການຄາສທ໌ເລີ່ມຕົ້ນ.

· ວາງ ບໍ່ null, ຮັກສາ ບໍ່ null

ໃນເວລາທີ່ທາງເລືອກ ວາງ ບໍ່ null ຖືກລະບຸໄວ້, pgloader ຫຼຸດລົງໃດໆທີ່ມີຢູ່ ບໍ່ NULL
ຂໍ້ຈໍາກັດທີ່ກ່ຽວຂ້ອງກັບແຫຼ່ງ MySQL datatype ເມື່ອມັນສ້າງຕາຕະລາງ
ໃນຖານຂໍ້ມູນ PostgreSQL.

ການສະກົດຄໍາ ຮັກສາ ບໍ່ null ປ້ອງກັນພຶດຕິກຳນັ້ນຢ່າງຈະແຈ້ງ ແລະສາມາດນຳໃຊ້ໄດ້
overload ກົດລະບຽບການຄາສທ໌ເລີ່ມຕົ້ນ.

· ວາງ typemod, ຮັກສາ typemod

ໃນເວລາທີ່ທາງເລືອກ ວາງ typemod ຖືກລະບຸໄວ້, pgloader ຫຼຸດລົງໃດໆທີ່ມີຢູ່ typemod ຄໍານິຍາມ
(ຕົວຢ່າງ ຄວາມຖືກຕ້ອງ ແລະ ຂະຫນາດ) ຈາກຄໍານິຍາມປະເພດຂໍ້ມູນທີ່ພົບເຫັນຢູ່ໃນຖັນ MySQL ຂອງ
ປະເພດແຫຼ່ງໃນເວລາທີ່ມັນສ້າງຕາຕະລາງໃນຖານຂໍ້ມູນ PostgreSQL.

ການສະກົດຄໍາ ຮັກສາ typemod ປ້ອງກັນພຶດຕິກຳນັ້ນຢ່າງຈະແຈ້ງ ແລະສາມາດນຳໃຊ້ໄດ້
overload ກົດລະບຽບການຄາສທ໌ເລີ່ມຕົ້ນ.

· ການນໍາໃຊ້

ຕົວເລືອກນີ້ໃຊ້ເວລາເປັນການໂຕ້ຖຽງດຽວຂອງມັນ ຊື່ຂອງຟັງຊັນທີ່ຈະພົບເຫັນຢູ່ໃນ
pgloader.transforms ຊຸດ Lisp ທົ່ວໄປ. ເບິ່ງຂ້າງເທິງສໍາລັບລາຍລະອຽດ.

ມັນເປັນໄປໄດ້ທີ່ຈະເພີ່ມກົດລະບຽບການຄາສທເລີ່ມຕົ້ນ (ເຊັ່ນ: ອັນທີ່ນໍາໃຊ້ກັບ ENUM
ປະເພດຂໍ້ມູນຕົວຢ່າງ) ກັບ a ການຫັນເປັນ ຫນ້າທີ່ ໂດຍ​ການ​ຍົກ​ເວັ້ນ​ທັງ​ຫມົດ​ ປະເພດ
ພາກສ່ວນຂອງກົດລະບຽບການຫລໍ່, ໃນຕົວຢ່າງຕໍ່ໄປນີ້:

ຖັນ enumerate.foo ໂດຍໃຊ້ string-to-null

· ວັດສະດຸ VIEWS

ຂໍ້ນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດປະຕິບັດການປະມວນຜົນຂໍ້ມູນແບບກຳນົດເອງຢູ່ທີ່ແຫຼ່ງຂໍ້ມູນໂດຍ
ການສະຫນອງເປັນ ເບິ່ງ ຄໍານິຍາມ ທີ່ pgloader ຈະສອບຖາມຂໍ້ມູນ. ມັນ​ບໍ່​ແມ່ນ
ເປັນໄປໄດ້ພຽງແຕ່ອະນຸຍາດໃຫ້ສໍາລັບການທໍາມະດາ SQL ເນື່ອງຈາກວ່າພວກເຮົາຕ້ອງການຮູ້ຫຼາຍກ່ຽວກັບແນ່ນອນ
ປະເພດຂອງຂໍ້ມູນຂອງແຕ່ລະຄໍລໍາທີ່ກ່ຽວຂ້ອງກັບຜົນໄດ້ຮັບການສອບຖາມ.

ປະໂຫຍກນີ້ຄາດຫວັງວ່າຈະມີບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຄໍານິຍາມການເບິ່ງ, ແຕ່ລະອັນຈະເປັນອັນໃດນຶ່ງ
ຊື່ຂອງມຸມເບິ່ງທີ່ມີຢູ່ແລ້ວໃນຖານຂໍ້ມູນຂອງເຈົ້າຫຼືສະແດງອອກຕໍ່ໄປນີ້:

ຊື່ AS $$ sql query $$

ໄດ້ ຊື່ ແລະ sql query ຈະ​ຖືກ​ນໍາ​ໃຊ້​ໃນ a ສ້າງ VIEW ຖະແຫຼງການໃນຕອນຕົ້ນຂອງ
ການໂຫຼດຂໍ້ມູນ, ແລະມຸມເບິ່ງຜົນໄດ້ຮັບຈະຖືກຫຼຸດລົງໃນຕອນທ້າຍຂອງຂໍ້ມູນ
ການໂຫຼດ.

· ວັດສະດຸ ທັງຫມົດ VIEWS

ພຶດຕິກໍາດຽວກັນກັບ ວັດສະດຸ VIEWS ການ​ນໍາ​ໃຊ້​ບັນ​ຊີ​ລາຍ​ການ​ແບບ​ເຄື່ອນ​ໄຫວ​ຂອງ​ການ​ເບິ່ງ​ທີ່​ສົ່ງ​ຄືນ​ໂດຍ​
MySQL ແທນທີ່ຈະຂໍໃຫ້ຜູ້ໃຊ້ລະບຸລາຍຊື່.

· ລວມເຂົ້າ ເທົ່ານັ້ນ ຕາຕະລາງ ຊື່ ການສົນທະນາ

ແນະນໍາບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ຕາຕະລາງ ຫຼື ປົກກະຕິ ການສະແດງອອກ ໃຊ້ເພື່ອຈໍາກັດ
ຕາຕະລາງເພື່ອຍ້າຍໄປຫາບັນຊີລາຍຊື່ຍ່ອຍ.

ຕົວຢ່າງ:

ລວມທັງການຈັບຄູ່ຊື່ຕາຕະລາງເທົ່ານັ້ນ ~/ຮູບເງົາ/, 'ນັກສະແດງ'

· ຍົກເວັ້ນ ຕາຕະລາງ ຊື່ ການສົນທະນາ

ແນະນໍາບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ຕາຕະລາງ ຫຼື ປົກກະຕິ ການສະແດງອອກ ໃຊ້ເພື່ອຍົກເວັ້ນ
ຊື່ຕາຕະລາງຈາກການເຄື່ອນຍ້າຍ. ການກັ່ນຕອງນີ້ພຽງແຕ່ນໍາໃຊ້ກັບຜົນໄດ້ຮັບຂອງ
ລວມເຂົ້າ ຕົວກອງ

ບໍ່ລວມເອົາຊື່ຕາຕະລາງທີ່ກົງກັນ ~

· ຖອດລະຫັດ ຕາຕະລາງ ຊື່ ການສົນທະນາ

ແນະນໍາບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ຕາຕະລາງ ຫຼື ປົກກະຕິ expressions ໃຊ້ເພື່ອບັງຄັບ
ການເຂົ້າລະຫັດທີ່ຈະໃຊ້ໃນເວລາປະມວນຜົນຂໍ້ມູນຈາກ MySQL. ຖ້າການເຂົ້າລະຫັດຂໍ້ມູນທີ່ທ່ານຮູ້ຈັກ
ມັນແຕກຕ່າງຈາກຄວາມຄິດຂອງ MySQL ກ່ຽວກັບມັນ, ນີ້ແມ່ນທາງເລືອກທີ່ຈະໃຊ້.

ການຖອດລະຫັດຊື່ຕາຕະລາງທີ່ກົງກັນ ~/messed/, ~/ການເຂົ້າລະຫັດ/ ເປັນ utf8

ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້​ກົດ​ລະ​ບຽບ​ດັ່ງ​ກ່າວ​ຫຼາຍ​ເທົ່າ​ທີ່​ທ່ານ​ຕ້ອງ​ການ​, ທັງ​ຫມົດ​ທີ່​ອາດ​ຈະ​ມີ​ການ​ເຂົ້າ​ລະ​ຫັດ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​.

ຂອບເຂດ ຈຳ ກັດ
ໄດ້ ຖານຂໍ້ມູນ ຄໍາສັ່ງປະຈຸບັນສະຫນັບສະຫນູນພຽງແຕ່ຖານຂໍ້ມູນແຫຼ່ງ MySQL ແລະມີດັ່ງຕໍ່ໄປນີ້
ຂໍ້​ຈໍາ​ກັດ​:

· Views ບໍ່​ໄດ້​ຖືກ​ຍ້າຍ​,

ການສະຫນັບສະຫນູນມຸມເບິ່ງອາດຈະຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດຕົວວິເຄາະ SQL ເຕັມສໍາລັບພາສາ MySQL
ດ້ວຍເຄື່ອງຈັກ porting ເພື່ອຂຽນຄືນ SQL ຕໍ່ PostgreSQL, ລວມທັງການປ່ຽນຊື່
ຫນ້າທີ່ແລະການປ່ຽນແປງບາງໂຄງສ້າງ.

ໃນຂະນະທີ່ມັນເປັນໄປບໍ່ໄດ້ທາງທິດສະດີ, ຢ່າຖືລົມຫາຍໃຈຂອງເຈົ້າ.

· Triggers ບໍ່ໄດ້ຖືກຍົກຍ້າຍ

ຄວາມ​ຫຍຸ້ງ​ຍາກ​ໃນ​ການ​ເຮັດ​ແນວ​ນັ້ນ​ແມ່ນ​ຍັງ​ບໍ່​ໄດ້​ປະ​ເມີນ​.

· ON UPDATE CURRENT_TIMESTAMP ປະຈຸບັນບໍ່ໄດ້ຍ້າຍ

ມັນງ່າຍດາຍພຽງພໍທີ່ຈະປະຕິບັດ, ພຽງແຕ່ບໍ່ໄດ້ຢູ່ໃນບັນຊີລາຍຊື່ບູລິມະສິດເທື່ອ.

· ຂອງປະເພດຂໍ້ມູນເລຂາຄະນິດ, ມີພຽງແຕ່ ຈຸດປະສົງ ຖານ​ຂໍ້​ມູນ​ໄດ້​ຮັບ​ການ​ຄຸ້ມ​ຄອງ​. ອື່ນໆ
ຄວນຈະງ່າຍພໍທີ່ຈະປະຕິບັດໃນປັດຈຸບັນ, ມັນຍັງບໍ່ທັນເຮັດເທື່ອ.

ຄ່າເລີ່ມຕົ້ນ MySQL ຄະດີ ກົດລະບຽບ
ເມື່ອການເຄື່ອນຍ້າຍຈາກ MySQL ກົດລະບຽບການສົ່ງສັນຍານຕໍ່ໄປນີ້ແມ່ນສະຫນອງໃຫ້:

ຈໍານວນ:

·ພິມ int ດ້ວຍການເພີ່ມ auto_increment ເປັນ serial ເມື່ອ (< ຄວາມແມ່ນຍໍາ 10)

·ພິມ int ດ້ວຍການເພີ່ມ auto_increment ເປັນ bigserial ເມື່ອ (<= 10 ຄວາມແມ່ນຍໍາ)

·ພິມ int ເປັນ int ເມື່ອ (< ຄວາມແມ່ນຍໍາ 10)

·ພິມ int ກັບ bigint ເມື່ອ (<= 10 ຄວາມແມ່ນຍໍາ)

· ພິມ tinyint ດ້ວຍການເພີ່ມ auto_increment ເປັນ serial

· ພິມ smallint ດ້ວຍການເພີ່ມ auto_increment ເປັນ serial

· ພິມ mediaint ດ້ວຍການເພີ່ມ auto_increment ເປັນ serial

·ພິມ bigint ດ້ວຍການເພີ່ມ auto_increment ເປັນ bigserial

· ພິມ tinyint ກັບ boolean ເມື່ອ (= 1 precision) ໂດຍໃຊ້ tinyint-to-boolean

·ພິມ tinyint ກັບ smallint drop typemod

· ພິມ smallint ຫາ smallint drop typemod

· ພິມ mediumint ຫາ integer drop typemod

· ພິມ integer ກັບ integer drop typemod

·ພິມ float ກັບ float drop typemod

·ພິມ bigint ກັບ bigint drop typemod

· ພິມ double to double precision drop typemod

·ພິມຕົວເລກໄປຫາຕົວເລກຮັກສາ typemod

· ພິມ​ເລກ​ທົດ​ສະ​ນິຍົມ​ຫາ​ທົດສະນິຍົມ​ຮັກສາ typemod

ບົດເລື່ອງ:

·ພິມ char ກັບ varchar ຮັກສາ typemod

·ພິມ varchar ເປັນຂໍ້ຄວາມ

·ພິມຂໍ້ຄວາມນ້ອຍໆໃສ່ຂໍ້ຄວາມ

·ພິມຂໍ້ຄວາມເປັນຂໍ້ຄວາມ

·ພິມຂໍ້ຄວາມປານກາງເປັນຂໍ້ຄວາມ

·ພິມ longtext ເປັນຂໍ້ຄວາມ

Binary:

·ພິມ binary ກັບ bytea

· ປະເພດ varbinary ກັບ bytea

·ພິມ tinyblob ເປັນ bytea

·ພິມ blob ເປັນ bytea

·ພິມ mediumblob ເປັນ bytea

·ພິມ longblob ເປັນ bytea

ວັນທີ່:

· ພິມ datetime ເມື່ອຄ່າເລີ່ມຕົ້ນ "0000-00-00 00:00:00" ແລະບໍ່ແມ່ນ null ກັບ timestamptz drop not
null drop ເລີ່ມຕົ້ນໂດຍໃຊ້ zero-dates-to-null

· ພິມ datetime ເມື່ອຄ່າເລີ່ມຕົ້ນ "0000-00-00 00:00:00" ເພື່ອ timestamptz drop default ໂດຍໃຊ້
zero-dates-to-null

· ພິມ timestamp ເມື່ອຄ່າເລີ່ມຕົ້ນ "0000-00-00 00:00:00" ແລະບໍ່ແມ່ນ null ກັບ timestamptz ຫຼຸດລົງ
null drop ເລີ່ມຕົ້ນໂດຍໃຊ້ zero-dates-to-null

· ພິມ timestamp ເມື່ອຄ່າເລີ່ມຕົ້ນ "0000-00-00 00:00:00" ເພື່ອ timestamptz ວາງໄວ້ໃນຕອນຕົ້ນໂດຍໃຊ້
zero-dates-to-null

· ພິມວັນທີເມື່ອຄ່າເລີ່ມຕົ້ນ "0000-00-00" ລົງວັນທີເລີ່ມຕົ້ນໂດຍໃຊ້ zero-dates-to-null

·ພິມວັນທີເຖິງວັນທີ

·ພິມ datetime ກັບ timestamptz

·ພິມ timestamp ກັບ timestamptz

· ປະ​ເພດ​ປີ​ກັບ​ການ​ຫຼຸດ​ລົງ​ຈໍາ​ນວນ​ເຕັມ typemod​

ເລຂາຄະນິດ:

· ພິມຈຸດໄປຫາຈຸດໂດຍໃຊ້ pgloader.transforms::convert-mysql-point

ປະເພດ Enum ຖືກປະກາດໃນແຖວໃນ MySQL ແລະແຍກຕ່າງຫາກດ້ວຍ a ສ້າງ TYPE ຄໍາສັ່ງໃນ
PostgreSQL, ດັ່ງນັ້ນແຕ່ລະຖັນຂອງ Enum Type ຖືກປ່ຽນເປັນປະເພດທີ່ມີຊື່ຕາມຕາຕະລາງແລະ
ຊື່ຖັນທີ່ກໍານົດດ້ວຍປ້າຍຊື່ດຽວກັນຢູ່ໃນລໍາດັບດຽວກັນ.

ເມື່ອຄໍານິຍາມປະເພດແຫຼ່ງບໍ່ໄດ້ຖືກຈັບຄູ່ໃນກົດລະບຽບການສົ່ງສັນຍານເລີ່ມຕົ້ນຫຼືຢູ່ໃນ
ກົດລະບຽບການຫລໍ່ທີ່ສະຫນອງໃຫ້ຢູ່ໃນຄໍາສັ່ງ, ຫຼັງຈາກນັ້ນຊື່ປະເພດທີ່ມີ typemod ແມ່ນຖືກນໍາໃຊ້.

ນ້ໍາຫນັກ SQLite DATABASE


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກໄຟລ໌ SQLite. ການ​ຄົ້ນ​ພົບ​ອັດ​ຕະ​ໂນ​ມັດ​ຂອງ​
schema ແມ່ນສະຫນັບສະຫນູນ, ລວມທັງການສ້າງດັດສະນີ.

ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫຼດຖານຂໍ້ມູນ
ຈາກ sqlite:///Users/dim/Downloads/lastfm_tags.db
ເຂົ້າໄປໃນ postgresql:///tags

ມີການຫຼຸດລົງ, ສ້າງຕາຕະລາງ, ສ້າງດັດສະນີ, ປັບລໍາດັບໃຫມ່

ຕັ້ງ work_mem ເປັນ ´16MB´, maintenance_work_mem ເປັນ ´512 MB´;

ໄດ້ sqlite ຄໍາສັ່ງຍອມຮັບຂໍ້ແລະທາງເລືອກຕໍ່ໄປນີ້:

· ຈາກ

ເສັ້ນທາງ ຫຼື HTTP URL ໄປຫາໄຟລ໌ SQLite, ອາດຈະເປັນ .zip ຍື່ນ.

· ກັບ

ເມື່ອໂຫລດຈາກ ກ SQLite ຖານຂໍ້ມູນ, ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:

ເມື່ອໂຫລດຈາກ ກ SQLite ຖານຂໍ້ມູນ, ທາງເລືອກຕໍ່ໄປນີ້ໄດ້ຮັບການສະຫນັບສະຫນູນ, ແລະ
Default ກັບ ຂໍ້ແມ່ນ: no ລຳ ຕົ້ນ, ສ້າງ ຕາຕະລາງ, ປະກອບດ້ວຍ ວາງ, ສ້າງ ດັດສະນີ,
reset ລໍາດັບ, ຕົວນ້ອຍ ຕົວລະບຸຕົວຕົນ, ການເຂົ້າລະຫັດ 'utf-8'.

· ປະກອບດ້ວຍ ວາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຫຼຸດລົງຕາຕະລາງທັງຫມົດໃນ PostgreSQL ເປົ້າຫມາຍ
ຖານຂໍ້ມູນທີ່ມີຊື່ປາກົດຢູ່ໃນຖານຂໍ້ມູນ SQLite. ທາງເລືອກນີ້ອະນຸຍາດໃຫ້ນໍາໃຊ້
ຄໍາສັ່ງດຽວກັນຫຼາຍຄັ້ງຕິດຕໍ່ກັນຈົນກ່ວາທ່ານຄິດອອກທາງເລືອກທັງຫມົດ, ເລີ່ມຕົ້ນ
ອັດຕະໂນມັດຈາກສະພາບແວດລ້ອມທີ່ສະອາດ. ກະລຸນາສັງເກດວ່າ CASCADE ຖືກນໍາໃຊ້ເພື່ອຮັບປະກັນ
ຕາຕະລາງນັ້ນຖືກລຸດລົງເຖິງແມ່ນວ່າຈະມີກະແຈຕ່າງປະເທດຊີ້ໄປຫາພວກມັນ. ນີ້​ແມ່ນ
ຊັດເຈນວ່າແມ່ນຫຍັງ ປະກອບດ້ວຍ ວາງ ມີຈຸດປະສົງເພື່ອເຮັດ: ຖິ້ມຕາຕະລາງເປົ້າຫມາຍທັງຫມົດແລະສ້າງໃຫມ່
ໃຫ້ເຂົາເຈົ້າ.

ການ​ນໍາ​ໃຊ້​ທີ່​ຍິ່ງ​ໃຫຍ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ດູ​ແລ​ ປະກອບດ້ວຍ ວາງ, ຍ້ອນວ່າມັນຈະ cascade ກັບ ທັງຫມົດ
ວັດຖຸອ້າງອີງຕາຕະລາງເປົ້າຫມາຍ, ອາດຈະລວມທັງຕາຕະລາງອື່ນໆທີ່ບໍ່ແມ່ນ
ຖືກໂຫລດຈາກແຫຼ່ງ DB.

· ປະກອບດ້ວຍ no ວາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຈະບໍ່ປະກອບມີໃດໆ ຢຸດ ຖະແຫຼງການໃນເວລາໂຫຼດ
ຂໍ້ມູນ.

· ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກ ພະຍາຍາມ ຄໍາສັ່ງຕໍ່ແຕ່ລະຄົນ
ຕາຕະລາງ PostgreSQL ກ່ອນການໂຫຼດຂໍ້ມູນໃສ່ມັນ.

· no ລຳ ຕົ້ນ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ມີບັນຫາທີ່ບໍ່ມີ ພະຍາຍາມ ຄໍາສັ່ງ.

· ປິດການໃຊ້ວຽກ triggers

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ອອກເປັນ ອີກຕໍ່ໄປ ຕາຕະລາງ ... ພິການ ຕົວແທນ ທັງຫມົດ
ຄໍາສັ່ງຕໍ່ກັບຕາຕະລາງເປົ້າຫມາຍ PostgreSQL ກ່ອນທີ່ຈະຄັດລອກຂໍ້ມູນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ
ອີກຕໍ່ໄປ ຕາຕະລາງ ... ເປີດ ຕົວແທນ ທັງຫມົດ ເມື່ອໄດ້ COPY ແມ່ນແລ້ວ.

ທາງ​ເລືອກ​ນີ້​ອະ​ນຸ​ຍາດ​ໃຫ້​ການ​ໂຫຼດ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​ຕາ​ຕະ​ລາງ​ກ່ອນ​ທີ່​ມີ​ຢູ່​ແລ້ວ​ໂດຍ​ບໍ່​ສົນ​ໃຈ​ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ແລະຜູ້ໃຊ້ກໍານົດ triggers ແລະອາດຈະເຮັດໃຫ້ບໍ່ຖືກຕ້ອງ ຕ່າງປະເທດ ທີ່ສໍາຄັນ
ຂໍ້ຈໍາກັດ ເມື່ອຂໍ້ມູນຖືກໂຫລດ. ໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ.

· ສ້າງ ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ສ້າງຕາຕະລາງໂດຍໃຊ້ຂໍ້ມູນ meta ທີ່ພົບໃນ
ໄດ້ SQLite ໄຟລ໌, ເຊິ່ງຕ້ອງມີບັນຊີລາຍຊື່ຂອງຊ່ອງຂໍ້ມູນທີ່ມີປະເພດຂໍ້ມູນຂອງເຂົາເຈົ້າ. ມາດຕະຖານ
ການປ່ຽນປະເພດຂໍ້ມູນຈາກ DBF ເປັນ PostgreSQL ແມ່ນແລ້ວ.

· ສ້າງ no ຕາຕະລາງ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຂ້າມການສ້າງຕາຕະລາງກ່ອນທີ່ຈະວາງຂໍ້ມູນ,
ຕາຕະລາງເປົ້າຫມາຍຕ້ອງມີຢູ່ແລ້ວ.

· ສ້າງ ດັດສະນີ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ໄດ້ຮັບຄໍານິຍາມຂອງດັດສະນີທັງຫມົດທີ່ພົບເຫັນຢູ່ໃນ
ຖານຂໍ້ມູນ SQLite ແລະສ້າງຊຸດດຽວກັນຂອງຄໍານິຍາມດັດສະນີຕໍ່ກັບ
ຖານຂໍ້ມູນ PostgreSQL.

· ສ້າງ no ດັດສະນີ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຈະຂ້າມການສ້າງດັດສະນີ.

· reset ລໍາດັບ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, ໃນຕອນທ້າຍຂອງການໂຫຼດຂໍ້ມູນແລະຫຼັງຈາກດັດສະນີມີ
ທັງຫມົດໄດ້ຖືກສ້າງຂື້ນ, pgloader ປັບລໍາດັບ PostgreSQL ທັງຫມົດທີ່ສ້າງເປັນປະຈຸບັນ
ຄ່າສູງສຸດຂອງຖັນທີ່ເຂົາເຈົ້າຕິດຢູ່.

· reset no ລໍາດັບ

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຂ້າມການຕັ້ງລໍາດັບໃຫມ່ຫຼັງຈາກການໂຫຼດ.

ທາງເລືອກ ໂຄງ ພຽງແຕ່ ແລະ ຂໍ້ມູນ ພຽງແຕ່ ບໍ່ມີຜົນຕໍ່ທາງເລືອກນີ້.

· ໂຄງ ພຽງແຕ່

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້ pgloader ຈະຫຼີກລ່ຽງການຍ້າຍຂໍ້ມູນ. ຫມາຍ​ເຫດ​
ວ່າ schema ໃນສະພາບການນີ້ປະກອບມີດັດຊະນີໃນເວລາທີ່ທາງເລືອກ ສ້າງ ດັດສະນີ
ໄດ້ຖືກລະບຸໄວ້.

· ຂໍ້ມູນ ພຽງແຕ່

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້ pgloader ພຽງແຕ່ບັນຫາ COPY ຖະແຫຼງການ, ໂດຍບໍ່ມີການດໍາເນີນການໃດໆ
ການ​ປຸງ​ແຕ່ງ​ອື່ນໆ​.

· ການເຂົ້າລະຫັດ

ຕົວເລືອກນີ້ອະນຸຍາດໃຫ້ຄວບຄຸມການເຂົ້າລະຫັດເພື່ອວິເຄາະຂໍ້ມູນຂໍ້ຄວາມ SQLite.
ຄ່າເລີ່ມຕົ້ນເປັນ UTF-8.

· ສົ່ງສັນຍານ

ຂໍ້ກໍານົດການສົ່ງສັນຍານອະນຸຍາດໃຫ້ກໍານົດກົດລະບຽບການສົ່ງສັນຍານແບບກໍານົດເອງ, ບໍ່ວ່າຈະເປັນການໂຫຼດເກີນຄ່າເລີ່ມຕົ້ນ
ກົດ​ລະ​ບຽບ​ການ​ຄັດ​ເລືອກ​ຫຼື​ການ​ປັບ​ປຸງ​ໃຫ້​ເຂົາ​ເຈົ້າ​ມີ​ກໍ​ລະ​ນີ​ພິ​ເສດ​.

ກະລຸນາອ້າງອີງເຖິງ MySQL CAST clause ສໍາລັບລາຍລະອຽດ.

· ລວມເຂົ້າ ເທົ່ານັ້ນ ຕາຕະລາງ ຊື່ ການສົນທະນາ

ແນະນໍາບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ຕາຕະລາງ ຫຼື ປົກກະຕິ ການສະແດງອອກ ໃຊ້ເພື່ອຈໍາກັດ
ຕາຕະລາງເພື່ອຍ້າຍໄປຫາບັນຊີລາຍຊື່ຍ່ອຍ.

ຕົວຢ່າງ:

ລວມທັງການຈັບຄູ່ຊື່ຕາຕະລາງເທົ່ານັ້ນ ~/ຮູບເງົາ/, 'ນັກສະແດງ'

· ຍົກເວັ້ນ ຕາຕະລາງ ຊື່ ການສົນທະນາ

ແນະນໍາບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຊື່ຕາຕະລາງ ຫຼື ປົກກະຕິ ການສະແດງອອກ ໃຊ້ເພື່ອຍົກເວັ້ນ
ຊື່ຕາຕະລາງຈາກການເຄື່ອນຍ້າຍ. ການກັ່ນຕອງນີ້ພຽງແຕ່ນໍາໃຊ້ກັບຜົນໄດ້ຮັບຂອງ
ລວມເຂົ້າ ຕົວກອງ

ບໍ່ລວມເອົາຊື່ຕາຕະລາງທີ່ກົງກັນ ~

ຄ່າເລີ່ມຕົ້ນ SQLite ຄະດີ ກົດລະບຽບ
ເມື່ອການເຄື່ອນຍ້າຍຈາກ SQLite ກົດລະບຽບການສົ່ງສັນຍານຕໍ່ໄປນີ້ແມ່ນສະຫນອງໃຫ້:

ຈໍານວນ:

· ພິມ tinyint ຫາ ນ້ອຍ

· ພິມຈຳນວນເຕັມໄປເປັນ bigint

·ພິມ float ກັບ float ໂດຍໃຊ້ float-to-string

·ພິມຈິງກັບຈິງໂດຍໃຊ້ float-to-string

·ພິມສອງເທົ່າເຖິງຄວາມແມ່ນຍໍາສອງເທົ່າໂດຍໃຊ້ float-to-string

·ພິມຕົວເລກເປັນຕົວເລກໂດຍໃຊ້ float-to-string

ບົດເລື່ອງ:

· ພິມ​ຕົວ​ອັກ​ສອນ​ກັບ​ການ​ຫຼຸດ​ລົງ​ຂໍ້​ຄວາມ typemod​

· ພິມ varchar ກັບ text drop typemod

·ພິມ nvarchar ກັບ text drop typemod

·ພິມ char ກັບ text drop typemod

·ພິມ nchar ກັບ text drop typemod

·ພິມ nvarchar ກັບ text drop typemod

·ພິມ clob ກັບ text drop typemod

Binary:

·ພິມ blob ເປັນ bytea

ວັນທີ່:

·ພິມ datetime ກັບ timestamptz ໂດຍໃຊ້ sqlite-timestamp-to-timestamp

·ພິມ timestamp ກັບ timestamptz ໂດຍໃຊ້ sqlite-timestamp-to-timestamp

·ພິມ timestamptz ກັບ timestamptz ໂດຍໃຊ້ sqlite-timestamp-to-timestamp

ນ້ໍາຫນັກ MS SQL DATABASE


ຄໍາສັ່ງນີ້ສັ່ງໃຫ້ pgloader ໂຫຼດຂໍ້ມູນຈາກຖານຂໍ້ມູນ MS SQL. ການ​ຄົ້ນ​ພົບ​ອັດ​ຕະ​ໂນ​ມັດ​
ຂອງ schema ແມ່ນສະຫນັບສະຫນູນ, ລວມທັງການສ້າງດັດສະນີ, ກຸນແຈຕົ້ນຕໍແລະຕ່າງປະເທດ
ຂໍ້ ຈຳ ກັດ.

ນີ້ແມ່ນຕົວຢ່າງ:

ໂຫຼດຖານຂໍ້ມູນ
ຈາກ mssql://user@host/dbname
ເຂົ້າໄປໃນ postgresql:///dbname

ລວມທັງພຽງແຕ່ຊື່ຕາຕະລາງເຊັ່ນ 'GlobalAccount' ໃນ schema 'dbo'

ຕັ້ງ work_mem ເປັນ '16MB', maintenance_work_mem ເປັນ '512 MB'

ກ່ອນການໂຫຼດເຮັດ $$ drop schema ຖ້າມີ dbo cascade; $$;

ໄດ້ mssql ຄໍາສັ່ງຍອມຮັບຂໍ້ແລະທາງເລືອກຕໍ່ໄປນີ້:

· ຈາກ

ສະຕຣິງການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຖານຂໍ້ມູນ MS SQL ທີ່ມີຢູ່ແລ້ວທີ່ຟັງແລະຍິນດີຕ້ອນຮັບ
ການເຊື່ອມຕໍ່ TCP/IP ພາຍນອກ. ໃນຖານະເປັນ pgloader ໃນປັດຈຸບັນ piggybacks ກ່ຽວກັບຄົນຂັບ FreeTDS, ກັບ
ປ່ຽນພອດຂອງເຊີບເວີ ກະລຸນາສົ່ງອອກ TDSPORT environment variable

· ກັບ

ເມື່ອໂຫລດຈາກ ກ MS SQL ຖານຂໍ້ມູນ, ທາງເລືອກດຽວກັນກັບເວລາໂຫລດ a MySQL ຖານຂໍ້ມູນ
ໄດ້ຮັບການສະຫນັບສະຫນູນ. ກະລຸນາເບິ່ງພາກ MySQL. ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນເພີ່ມ:

· ສ້າງ schemas

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ສ້າງ schemas ດຽວກັນທີ່ພົບເຫັນຢູ່ໃນ MS SQL
ຕົວຢ່າງ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.

· ສ້າງ no schemas

ເມື່ອຕົວເລືອກນີ້ຖືກລະບຸໄວ້, pgloader ຫຼີກລ່ຽງການສ້າງ schemas ໃດໆ, ທ່ານ
ຈາກນັ້ນຕ້ອງຮັບປະກັນວ່າ schema ເປົ້າຫມາຍມີຢູ່.

· ສົ່ງສັນຍານ

ຂໍ້ກໍານົດການສົ່ງສັນຍານອະນຸຍາດໃຫ້ກໍານົດກົດລະບຽບການສົ່ງສັນຍານແບບກໍານົດເອງ, ບໍ່ວ່າຈະເປັນການໂຫຼດເກີນຄ່າເລີ່ມຕົ້ນ
ກົດ​ລະ​ບຽບ​ການ​ຄັດ​ເລືອກ​ຫຼື​ການ​ປັບ​ປຸງ​ໃຫ້​ເຂົາ​ເຈົ້າ​ມີ​ກໍ​ລະ​ນີ​ພິ​ເສດ​.

ກະລຸນາອ້າງອີງເຖິງ MySQL CAST clause ສໍາລັບລາຍລະອຽດ.

· ລວມເຂົ້າ ເທົ່ານັ້ນ ຕາຕະລາງ ຊື່ ເຊັ່ນດຽວກັນກັບ ´...´ [, ´...´] IN scheMA ´...´

ແນະນຳລາຍການທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຮູບແບບຊື່ຕາຕະລາງທີ່ໃຊ້ເພື່ອຈຳກັດຕາຕະລາງໃຫ້
ຍ້າຍໄປຫາບັນຊີລາຍຊື່ຍ່ອຍ. ຫຼາຍກວ່າຫນຶ່ງຂໍ້ດັ່ງກ່າວອາດຈະຖືກນໍາໃຊ້, ພວກມັນຈະຖືກສະສົມ
ຮ່ວມກັນ.

ຕົວຢ່າງ:

ລວມທັງພຽງແຕ່ຊື່ຕາຕະລາງ lile 'GlobalAccount' ໃນ schema 'dbo'

· ຍົກເວັ້ນ ຕາຕະລາງ ຊື່ ເຊັ່ນດຽວກັນກັບ ´...´ [, ´...´] IN scheMA ´...´

ແນະນຳລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຮູບແບບຊື່ຕາຕະລາງທີ່ໃຊ້ເພື່ອຍົກເວັ້ນຊື່ຕາຕະລາງ
ຈາກ​ການ​ເຄື່ອນ​ຍ້າຍ. ການກັ່ນຕອງນີ້ໃຊ້ກັບຜົນໄດ້ຮັບຂອງ ລວມເຂົ້າ ຕົວກອງ

ບໍ່ລວມເອົາຊື່ຕາຕະລາງທີ່ກົງກັນ 'ບັນຊີທ້ອງຖິ່ນ' ໃນ schema 'dbo'

ຄ່າເລີ່ມຕົ້ນ MS SQL ຄະດີ ກົດລະບຽບ
ເມື່ອການເຄື່ອນຍ້າຍຈາກ MS SQL ກົດລະບຽບການສົ່ງສັນຍານຕໍ່ໄປນີ້ແມ່ນສະຫນອງໃຫ້:

ຈໍານວນ:

· ພິມ tinyint ຫາ ນ້ອຍ

·ພິມ float ກັບ float ໂດຍໃຊ້ float-to-string

·ພິມຈິງກັບຈິງໂດຍໃຊ້ float-to-string

·ພິມສອງເທົ່າເຖິງຄວາມແມ່ນຍໍາສອງເທົ່າໂດຍໃຊ້ float-to-string

·ພິມຕົວເລກເປັນຕົວເລກໂດຍໃຊ້ float-to-string

· ພິມເລກທົດສະນິຍົມເປັນຕົວເລກໂດຍໃຊ້ float-to-string

·ພິມເງິນເປັນຕົວເລກໂດຍໃຊ້ float-to-string

·ພິມເງິນນ້ອຍເປັນຕົວເລກໂດຍໃຊ້ float-to-string

ບົດເລື່ອງ:

·ພິມ char ກັບ text drop typemod

·ພິມ nchat ກັບ text drop typemod

· ພິມ varchar ກັບ text drop typemod

·ພິມ nvarchar ກັບ text drop typemod

·ພິມ xml ກັບ text drop typemod

Binary:

·ພິມ binary ກັບ bytea ໂດຍໃຊ້ byte-vector-to-bytea

· ພິມ varbinary ກັບ bytea ໂດຍໃຊ້ byte-vector-to-bytea

ວັນທີ່:

·ພິມ datetime ກັບ timestamptz

·ພິມ datetime2 ກັບ timestamptz

ຄົນອື່ນ:

·ພິມ bit ເປັນ boolean

·ພິມ hierarchyid ເປັນ bytea

· ປະເພດພູມສາດເປັນ bytea

·ພິມ uniqueidentifier ກັບ uuid ໂດຍໃຊ້ sql-server-uniqueidentifier-to-uuid

ການແປພາສາ FUNCTIONS


ບາງປະເພດຂໍ້ມູນຖືກປະຕິບັດໃນວິທີທີ່ແຕກຕ່າງກັນພຽງພໍທີ່ຫນ້າທີ່ການຫັນປ່ຽນ
ເປັນສິ່ງຈໍາເປັນ. ຟັງຊັນນີ້ຕ້ອງຖືກຂຽນໄວ້ໃນ ສາມັນ ລາຍການ ແລະຖືກຄົ້ນຫາຢູ່ໃນ
pgloader.transforms package

ບາງຟັງຊັນການຫັນປ່ຽນໃນຕອນຕົ້ນແມ່ນສະຫນອງໃຫ້ກັບ pgloader, ແລະທ່ານສາມາດນໍາໃຊ້ໄດ້
-- ໂຫຼດ ທາງເລືອກແຖວຄໍາສັ່ງທີ່ຈະໂຫລດແລະລວບລວມໄຟລ໌ lisp ຂອງທ່ານເອງເຂົ້າໄປໃນ pgloader ຢູ່
ເວລາແລ່ນ. ສໍາລັບຫນ້າທີ່ຂອງທ່ານທີ່ຈະພົບເຫັນ, ຈື່ໄວ້ເພື່ອເລີ່ມຕົ້ນໄຟລ໌ lisp ຂອງທ່ານກັບ
ແບບຟອມຕໍ່ໄປນີ້:

(in-package #:pgloader.transforms)

ຫນ້າ​ທີ່​ການ​ຫັນ​ປ່ຽນ​ສະ​ຫນອງ​ໃຫ້​ແມ່ນ​:

· zero-dates-to-null

ເມື່ອວັນທີປ້ອນຂໍ້ມູນແມ່ນສູນທັງໝົດ, ໃຫ້ກັບຄືນ nil, ເຊິ່ງໄດ້ຮັບການໂຫຼດເປັນ PostgreSQL NULL
ມູນຄ່າ.

· date-with-no-separator

ໃຊ້ໄດ້ zero-dates-to-null ຈາກນັ້ນປ່ຽນວັນທີທີ່ໃຫ້ໄປເປັນຮູບແບບທີ່ PostgreSQL
ຕົວຈິງແລ້ວຈະດໍາເນີນການ:

ໃນ: "20041002152952"
Out: "2004-10-02 15:29:52"

· time-with-no-separator

ປ່ຽນເວລາໃຫ້ເຂົ້າໄປໃນຮູບແບບທີ່ PostgreSQL ຕົວຈິງແລ້ວຈະປະມວນຜົນ:

ໃນ: "08231560"
ອອກ: "08:23:15.60"

· tinyint-to-boolean

ຍ້ອນວ່າ MySQL ຂາດປະເພດ boolean ທີ່ເຫມາະສົມ, ນ້ອຍ tiny ມັກຈະຖືກນໍາໃຊ້ເພື່ອປະຕິບັດມັນ. ນີ້
ການ​ປ່ຽນ​ແປງ​ຫນ້າ​ທີ່​ 0 to 'ບໍ່ຖືກຕ້ອງ' ແລະສິ່ງອື່ນໃດ 'ຈິງ'.

· bits-to-boolean

ຍ້ອນວ່າ MySQL ຂາດປະເພດ boolean ທີ່ເຫມາະສົມ, BIT ມັກຈະຖືກນໍາໃຊ້ເພື່ອປະຕິບັດມັນ. ນີ້
ຟັງຊັນປ່ຽນ 1-bit vectors ຈາກ 0 to f ແລະມູນຄ່າອື່ນໆທີ່ຈະ t..

· int-to-ip

ປ່ຽນຈຳນວນເຕັມເປັນຕົວແທນຈຸດຂອງ ip4.

ໃນ: 18435761
ອອກ: "1.25.78.177"

· ip-range

ແປງສອງສາມຈຳນວນເຕັມທີ່ໃຫ້ເປັນສະຕຣິງເປັນຊ່ວງຂອງ ip4.

ໃນ: "16825344" "16825599"
ອອກ: "1.0.188.0-1.0.188.255"

· convert-mysql-ຈຸດ

ແປງຈາກ astext ການເປັນຕົວແທນຂອງຈຸດໃນ MySQL ກັບ PostgreSQL
ການເປັນຕົວແທນ.

ໃນ: "POINT(48.5513589 7.6926827)"
ອອກ: "(48.5513589,7.6926827)"

· float-to-string

ປ່ຽນການລອຍຕົວແບບ Lisp ທົ່ວໄປເປັນສະຕຣິງທີ່ເໝາະສົມກັບຕົວເລື່ອນ PostgreSQL:

ໃນ: 100.0d0
ອອກ: "100.0"

· set-to-enum-array

ປ່ຽນສະຕຣິງທີ່ເປັນຕົວແທນຂອງ MySQL SET ເປັນ PostgreSQL Array ຂອງຄ່າ Enum ຈາກ
ຊຸດ.

ໃນ: "foo,bar"
ອອກ: "{foo,bar}"

· empty-string-to-null

ປ່ຽນສະຕຣິງຫວ່າງເປົ່າເປັນ null.

· ຕັດຂວາ

ເອົາຊ່ອງຫວ່າງຢູ່ທ້າຍສະຕຣິງ.

· byte-vector-to-byte

ປ່ຽນອາເຣແບບງ່າຍໆຂອງໄບທີ່ບໍ່ໄດ້ເຊັນເປັນ PostgreSQL bytea Hex Format
ການເປັນຕົວແທນເປັນເອກະສານທີ່
http://www.postgresql.org/docs/9.3/interactive/datatype-binary.html

· sqlite-timestamp-to-timestamp

ລະບົບປະເພດ SQLite ແມ່ນຂ້ອນຂ້າງຫນ້າສົນໃຈ, ສະນັ້ນຮັບມືກັບມັນຢູ່ທີ່ນີ້ເພື່ອຜະລິດເວລາ
ຕົວອັກສອນຕາມທີ່ຄາດໄວ້ໂດຍ PostgreSQL. ທີ່ກວມເອົາປີພຽງແຕ່ 4 ຕົວເລກ, 0 ວັນທີ
null, ແລະສະຕຣິງວັນທີທີ່ຖືກຕ້ອງ.

· sql-server-uniqueidentifier-to-uuid

ໄດເວີ SQL Server ໄດ້ຮັບຂໍ້ມູນ fo type uniqueidentifier ເປັນ byte vector ທີ່ພວກເຮົາ
ຈາກນັ້ນຈໍາເປັນຕ້ອງໄດ້ປ່ຽນເປັນ UUID string ສໍາລັບຮູບແບບການປ້ອນຂໍ້ມູນ PostgreSQL COPY ເພື່ອປະມວນຜົນ.

· unix-timestamp-to-timestamptz

ແປງເວລາ unix (ຈໍານວນວິນາທີທີ່ຜ່ານໄປຕັ້ງແຕ່ຕົ້ນປີ 1970) ເປັນ
ຮູບແບບເວລາ PostgreSQL ທີ່ຖືກຕ້ອງ.

ນ້ໍາຫນັກ MESSAGES


ຄໍາສັ່ງນີ້ຍັງເປັນການທົດລອງແລະອະນຸຍາດໃຫ້ຮັບຂໍ້ຄວາມຜ່ານ UDP ໂດຍໃຊ້ syslog
ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ຮູບ​ແບບ​, ແລະ​, ຂຶ້ນ​ກັບ​ການ​ຈັບ​ຄູ່​ກົດ​ລະ​ບຽບ​, ການ​ໂຫຼດ​ສ່ວນ​ທີ່​ມີ​ຊື່​ຂອງ​ນ​້​ໍ​າ​ຂໍ້​ມູນ​ເຂົ້າ​ໄປ​ໃນ​
ຕາຕະລາງປາຍທາງ.

ໂຫຼດຂໍ້ຄວາມ
ຈາກ syslog://localhost:10514/

ເມື່ອກົງກັບ rsyslog-msg ໃນ apache
ການລົງທະບຽນເວລາ, ip, ສ່ວນທີ່ເຫຼືອ
ເຂົ້າໄປໃນ postgresql://localhost/db?logs.apache
SET guc_1 = ´value´, guc_2 = ´ຄ່າອື່ນໆ´

ເມື່ອກົງກັບ rsyslog-msg ຢູ່ໃນບ່ອນອື່ນ
ການລົງທະບຽນເວລາ, ຊື່ແອັບ, ຂໍ້ມູນ
ເຂົ້າໄປໃນ postgresql://localhost/db?logs.others
SET guc_1 = ´value´, guc_2 = ´ຄ່າອື່ນໆ´

ດ້ວຍ apache = rsyslog
DATA = IP REST
IP = 1*3DIGIT "." 1*3DIGIT "."."1*3DIGIT "."."1*3DIGIT
ພັກຜ່ອນ = ~ /.*/

ກັບຄົນອື່ນ = rsyslog;

ເນື່ອງຈາກຄໍາສັ່ງຍັງຢູ່ໃນການທົດລອງ, ທາງເລືອກອາດຈະມີການປ່ຽນແປງໃນອະນາຄົດແລະ
ລາຍລະອຽດບໍ່ໄດ້ບັນທຶກໄວ້.

ໃຊ້ pgloader ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

  • 1
    SuiteCRM
    SuiteCRM
    SuiteCRM ແມ່ນລູກຄ້າທີ່ໄດ້ຮັບຮາງວັນ
    ການຈັດການຄວາມສຳພັນ (CRM)
    ຄໍາ​ຮ້ອງ​ສະ​ຫມັກ​ນໍາ​ມາ​ໃຫ້​ທ່ານ​ໂດຍ​ຜູ້​ຂຽນ​
    ແລະຜູ້ຮັກສາ, SalesAgility. ມັນແມ່ນ
    ໂລກ...
    ດາວໂຫລດ SuiteCRM
  • 2
    ຜູ້ບໍລິຫານ
    ຜູ້ບໍລິຫານ
    Poweradmin ແມ່ນ DNS ທີ່ອີງໃສ່ເວັບ
    ເຄື່ອງມືບໍລິຫານສຳລັບເຊີບເວີ PowerDNS.
    ອິນເຕີເຟດມີການສະຫນັບສະຫນູນຢ່າງເຕັມທີ່ສໍາລັບສ່ວນໃຫຍ່
    ຄຸນສົມບັດຂອງ PowerDNS. ມັນມີເຕັມ
    ສະຫນັບສະຫນູນ ...
    ດາວໂຫລດ Poweradmin
  • 3
    Gin Web Framework
    Gin Web Framework
    Gin ແມ່ນກອບເວັບທີ່ໄວຢ່າງບໍ່ຫນ້າເຊື່ອ
    ຂຽນໃນ Golang ທີ່ສາມາດປະຕິບັດໄດ້ເຖິງ
    40 ເທົ່າ​ໄວ​, ຂໍ​ຂອບ​ໃຈ​ກັບ​ມັນ​
    martini-like API ແລະສະບັບ custom ຂອງ
    httprout...
    ດາວໂຫລດ Gin Web Framework
  • 4
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX basado en MX LINUX con
    varios entrornos de escritorios. ນີ້​ແມ່ນ
    ຄໍາຮ້ອງສະຫມັກທີ່ຍັງສາມາດດຶງຂໍ້ມູນໄດ້
    ຈາກ
    https://sourceforge.net/projects/cereu...
    ດາວໂຫລດ CEREUS LINUX
  • 5
    ຄູຝຶກສອນວຽກ
    ຄູຝຶກສອນວຽກ
    Task Coach - ວຽກ​ງານ​ທີ່​ເປັນ​ມິດ​ຂອງ​ທ່ານ​
    ຜູ້​ຈັດ​ການ. Task Coach ແມ່ນເປີດໃຫ້ຟຣີ
    ແຫຼ່ງ todo manager. ມັນຂະຫຍາຍຕົວອອກຈາກ
    ຄວາມອຸກອັ່ງກ່ຽວກັບໂຄງການອື່ນໆບໍ່ແມ່ນ
    ການຈັດການອົງປະກອບ ...
    ດາວໂຫລດ Task Coach
  • 6
    ເຄື່ອງຈັກຖານຂໍ້ມູນ HyperSQL (HSQLDB)
    ເຄື່ອງຈັກຖານຂໍ້ມູນ HyperSQL (HSQLDB)
    HSQLDB ແມ່ນເຄື່ອງຈັກຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ
    ຂຽນໃນ Java, ມີໄດເວີ JDBC,
    ສອດຄ່ອງກັບ ANSI SQL: 2016. ຂະ​ຫນາດ​ນ້ອຍ​,
    ໄວ, multithreaded ເຄື່ອງຈັກແລະເຄື່ອງແມ່ຂ່າຍ
    ກັບ me...
    ດາວໂຫລດ HyperSQL Database Engine (HSQLDB)
  • ເພີ່ມເຕີມ »

Linux ຄຳ ສັ່ງ

Ad