Back to Question Center
0

ນໍາເຂົ້າຂໍ້ມູນເຂົ້າໃນ Redshift ໂດຍໃຊ້ COPY Semalt            ນໍາເຂົ້າຂໍ້ມູນເຂົ້າໃນ Redshift ໂດຍໃຊ້ COPY Semalt

1 answers:
ນໍາເຂົ້າຂໍ້ມູນເຂົ້າໃນ Redshift ໂດຍໃຊ້ຄໍາສັ່ງ COPY

ບົດຂຽນນີ້ຖືກຈັດພີມມາໂດຍທີມງານ TeamSQL. ຂອບໃຈສໍາລັບການສະຫນັບສະຫນູນຄູ່ຮ່ວມງານທີ່ເຮັດໃຫ້ SitePoint ເປັນໄປໄດ້.

ການນໍາເຂົ້າຂໍ້ມູນຈໍານວນຫຼວງຫຼາຍເຂົ້າໃນ Redshift ແມ່ນງ່າຍດາຍໂດຍນໍາໃຊ້ຄໍາສັ່ງ COPY - value boats blue book. ເພື່ອສະແດງໃຫ້ເຫັນວ່ານີ້, ພວກເຮົາຈະນໍາເຂົ້າຂໍ້ມູນທີ່ມີຢູ່ໃນສາທາລະນະ "ຂໍ້ມູນ Twitter ສໍາລັບການວິເຄາະການຂຸດເຈາະ" (ເບິ່ງ Semalt140 ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ).

ຫມາຍເຫດ : ທ່ານສາມາດເຊື່ອມຕໍ່ກັບ AWS Redshift ກັບ TeamSQL, ລູກຄ້າທີ່ເປັນແພລະຕະຟອມຫຼາຍທີ່ໃຊ້ກັບ Redshift, PostgreSQL, MySQL ແລະ Microsoft SQL Server ແລະເຮັດວຽກໃນ Mac, Linux ແລະ Windows. ທ່ານສາມາດດາວນ໌ໂຫລດ TeamSQL ໄດ້ໂດຍບໍ່ເສຍຄ່າ.

ຢຸດເຊົາການໄຟລ໌ ZIP ທີ່ມີຂໍ້ມູນການຝຶກອົບຮົມຢູ່ທີ່ນີ້.

The Redshift Cluster

ສໍາລັບຈຸດປະສົງຂອງຕົວຢ່າງນີ້, ຂໍ້ກໍານົດການຕັ້ງຄ່າ Redshift Semalt ແມ່ນມີດັ່ງນີ້:

  • ຊະນິດຂອງກຸ່ມ : ໂຫນດດຽວ
  • Node Type : dc1 ຂະຫນາດໃຫຍ່
  • ເຂດ : ພວກເຮົາຕາເວັນອອກ -aa

ສ້າງຖານຂໍ້ມູນໃນ Redshift

ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອສ້າງຖານຂໍ້ມູນໃຫມ່ໃນ cluster ຂອງທ່ານ:

     CREATE DATABASE sentiment    

ສ້າງແຜນໃນຖານຂໍ້ມູນຄວາມຮູ້ສຶກ

ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອສ້າງໂຄງການພາຍໃນຖານຂໍ້ມູນທີ່ສ້າງໃຫມ່ຂອງທ່ານ:

     CREATE SCHEMA tweets    

ແຜນການ (ໂຄງສ້າງ) ຂອງຂໍ້ມູນການຝຶກອົບຮົມ

ໄຟລ໌ CSV ປະກອບມີຂໍ້ມູນ Twitter ດ້ວຍໂປຣແກມໄອຄອນທັງຫມົດອອກ. ການເຈລະຈາແມ່ນມີ 6 ຄໍລໍາ:

  • ຕໍາແຫນ່ງຂອງບົດລາຍງານ (ທີ່ສໍາຄັນ: 0 = ນິຍາມ, 2 = ກາງ, 4 = ບວກ)
  • id ຂອງ tweet (ex 2087)
  • ວັນທີຂອງ tweet (ex ວັນເສົາ 16 ພຶດສະພາ 23:58:44 UTC 2009)
  • ການສອບຖາມ (ex lyx). ຖ້າບໍ່ມີຄໍາຖາມ, ຫຼັງຈາກນັ້ນຄ່ານີ້ແມ່ນ NO_QUERY.
  • ຜູ້ໃຊ້ທີ່ tweeted (ex robotickilldozr)
  • ຂໍ້ຄວາມຂອງ tweet (ex Lyx ແມ່ນເຢັນ)

ສ້າງຕາຕະລາງຂໍ້ມູນການຝຶກອົບຮົມ

Semalt ໂດຍການສ້າງຕາຕະລາງໃນຖານຂໍ້ມູນຂອງທ່ານເພື່ອຖືຂໍ້ມູນການຝຶກອົບຮົມ. ທ່ານສາມາດໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:

     CREATE TABLE tweets ການຝຶກອົບຮົມpolarity int,id BIGINT,date_of_tweet varchar,query varchar,user_id varchar,tweet varchar (max))    

ການອັບໂຫລດເອກະສານ CSV ກັບ S3

ເພື່ອນໍາໃຊ້ຄໍາສັ່ງ Semalt COPY, ທ່ານຕ້ອງອັບໂຫລດແຫຼ່ງຂໍ້ມູນຂອງທ່ານ (ຖ້າມັນເປັນໄຟລ໌) ໄປ S3.

ອັບໂຫລດໄຟລ໌ CSV ກັບ S3:

  1. Unzip ໄຟລ໌ທີ່ທ່ານດາວໂຫລດ . ທ່ານຈະເຫັນ 2 ໄຟລ໌ CSV: ຫນຶ່ງແມ່ນຂໍ້ມູນການທົດສອບ (ນໍາໃຊ້ເພື່ອສະແດງໂຄງສ້າງຂອງຊຸດຂໍ້ມູນຕົ້ນສະບັບ) ແລະອື່ນໆ (ຊື່ໄຟ: ການຝຶກອົບຮົມ 1600000. processed noemoticon) ມີຂໍ້ມູນຕົ້ນສະບັບ. ພວກເຮົາຈະອັບໂຫລດແລະນໍາໃຊ້ໄຟລ໌ສຸດທ້າຍ.
  2. ຂະຫຍາຍໄຟລ໌ . ຖ້າທ່ານໃຊ້ macOS ຫຼື Linux, ທ່ານສາມາດຮວບຮວມໄຟລ໌ທີ່ໃຊ້ GZIP ໂດຍການໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້ໃນ Terminal: gzip training. 1600000 processed noemoticon csv
  3. ອັບໂຫລດໄຟລ໌ຂອງທ່ານໂດຍໃຊ້ Dashboard AWS S3.

ອີກທາງເລືອກ, ທ່ານສາມາດໃຊ້ Terminal / Command Line ເພື່ອອັບໂຫລດໄຟລ໌ຂອງທ່ານ. ເພື່ອເຮັດສິ່ງນີ້, ທ່ານຕ້ອງຕິດຕັ້ງ AWS CLI ແລະ, ຫຼັງຈາກການຕິດຕັ້ງ, configure ມັນ (run aws configure ຢູ່ໃນ terminal ຂອງທ່ານເພື່ອເລີ່ມຕົ້ນການຕົວຊ່ວຍສ້າງການຕັ້ງຄ່າ) ດ້ວຍການເຂົ້າໃຊ້ແລະຄີຂອງທ່ານ.

ເຊື່ອມຕໍ່ TeamSQL ກັບ Redshift Cluster ແລະສ້າງ Schema

ເປີດ TeamSQL (ຖ້າທ່ານບໍ່ມີ TeamSQL Semalt, ດາວໂຫລດມັນຈາກ teamql io) ແລະເພີ່ມການເຊື່ອມຕໍ່ໃຫມ່.

  • ກົດ ສ້າງການເຊື່ອມຕໍ່ ເພື່ອເປີດຫນ້າຕ່າງຕື່ມການເຊື່ອມຕໍ່.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

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

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • ດໍາເນີນການຄໍາສັ່ງນີ້ເພື່ອສ້າງ schema ໃຫມ່ໃນຖານຂໍ້ມູນຂອງທ່ານ.
     CREATE SCHEMA tweets    

  • ປັບປຸງບັນຊີລາຍຊື່ຖານຂໍ້ມູນໃນແຜງນໍາທາງດ້ານຊ້າຍໂດຍກົດປຸ່ມຂວາເທິງການເຊື່ອມຕໍ່.
  • ສ້າງຕາຕະລາງໃຫມ່ສໍາລັບການຝຶກອົບຮົມຂໍ້ມູນ.
     CREATE TABLE tweets ການຝຶກອົບຮົມpolarity int,id int,date_of_tweet varchar,query varchar,user_id varchar,tweet varchar)    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

  • ປັບປຸງການເຊື່ອມຕໍ່ແລະຕາຕະລາງຂອງທ່ານຈະປາກົດຢູ່ໃນບັນຊີລາຍຊື່ຊ້າຍ.

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

ການໃຊ້ຄໍາສັ່ງ COPY ເພື່ອນໍາເຂົ້າຂໍ້ມູນ

ເພື່ອຄັດລອກຂໍ້ມູນຂອງທ່ານຈາກໄຟລ໌ແຫຼ່ງຂອງທ່ານໃນຕາຕະລາງຂໍ້ມູນຂອງທ່ານ, ໃຫ້ໃຊ້ຄໍາສັ່ງຕໍ່ໄປນີ້:

     COPY tweets ການຝຶກອົບຮົມຈາກ '3: // MY_BUCKET / ການຝຶກອົບຮົມ. 1600000 processed noemoticon csv gz 'ຂໍ້ມູນປະຈໍາຕົວ 'aws_access_key_id = MY_ACCESS_KEY aws_secret_access_key = MY_SECRET_KEY'CSV GZIP ACCEPTINVCHARS    

ຄໍາສັ່ງນີ້ຈະໂຫລດໄຟລ໌ CSV ແລະນໍາເຂົ້າຂໍ້ມູນໄປຫາ tweets ຂອງພວກເຮົາ . ຕາຕະລາງການຝຶກອົບຮົມ .

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

ຄໍາສັ່ງ Parameter ຄໍາສັ່ງ

CSV : ເປີດໃຊ້ການນໍາໃຊ້ຮູບແບບ CSV ໃນຂໍ້ມູນປະກອບ.

: ກໍານົດຕົວອັກສອນ ASCII ດຽວທີ່ຖືກນໍາໃຊ້ເພື່ອແຍກຂົງເຂດໃນໄຟລ໌ເຂົ້າ, ເຊັ່ນ: ຕົວອັກສອນທໍ່ (|), ໂຄມໄຟ (,), ຫຼືແຖບ (\ t).

GZIP : ມູນຄ່າທີ່ລະບຸວ່າໄຟລ໌ຫຼືໄຟລ໌ເຂົ້າໃນຮູບແບບ gzip ທີ່ຖືກບີບອັດ (gz files). ການປະຕິບັດງານ COPY ອ່ານໄຟລ໌ທີ່ຖືກບີບອັດແຕ່ລະຄົນແລະ uncompresses ຂໍ້ມູນເມື່ອມັນຖືກໂຫລດ.

ACCEPTINVCHARS : ອະນຸຍາດໃຫ້ການໂຫຼດຂໍ້ມູນເຂົ້າໃນຄໍລໍາ VARCHAR ເຖິງແມ່ນວ່າຂໍ້ມູນມີຕົວເລກ UTF-8 ບໍ່ຖືກຕ້ອງ. ເມື່ອ ACCEPTINVCHARS ຖືກລະບຸ, COPY ຈະແທນຕົວອັກສອນ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງໂດຍມີຄວາມຍາວເທົ່າກັນທີ່ມີລັກສະນະທີ່ຖືກກໍານົດໂດຍ replace_char . ຕົວຢ່າງ: ຖ້າຕົວອັກສອນແທນແມ່ນ ' ^ ', ຕົວອັກສອນສາມໂຕທີ່ບໍ່ຖືກຕ້ອງຈະຖືກແທນທີ່ດ້ວຍ ' ^^^ '.

ລັກສະນະທົດແທນສາມາດເປັນຕົວອັກສອນ ASCII ໃດໆນອກເຫນືອຈາກ NULL. ຄ່າເລີ່ມຕົ້ນແມ່ນເຄື່ອງຫມາຍຄໍາຖາມ (?). ສໍາລັບຂໍ້ມູນກ່ຽວກັບລັກສະນະ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງ, ໃຫ້ເບິ່ງຂໍ້ຜິດພາດຂອງຕົວອັກສອນ Multibyte.

COPY ຈະສົ່ງຄືນຈໍານວນແຖວທີ່ມີຕົວເລກ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງແລະມັນຈະເພີ່ມການເຂົ້າໄປໃນຕາຕະລາງລະບົບ STL_REPLACEMENTS ສໍາລັບແຕ່ລະແຖວທີ່ໄດ້ຮັບຜົນກະທົບ, ເຖິງ 100 ແຖວສໍາລັບແຕ່ລະຊິ້ນ node. Semalt ຕົວເລກ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງແມ່ນຍັງຖືກແທນທີ່, ແຕ່ເຫດການການທົດແທນເຫຼົ່ານັ້ນບໍ່ໄດ້ບັນທຶກ.

ຖ້າ ACCEPTINVCHARS ບໍ່ໄດ້ລະບຸ, COPY ຈະສົ່ງຄືນຂໍ້ຜິດພາດເມື່ອມັນພົບກັບຕົວອັກສອນ UTF-8 ທີ່ບໍ່ຖືກຕ້ອງ.

ACCEPTINVCHARS ສໍາລັບຄໍລໍາ VARCHAR ເທົ່ານັ້ນ.

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາເບິ່ງຄໍາສັ່ງ Redshift Copy Parameters ແລະຮູບແບບຂໍ້ມູນ.

ການເຂົ້າເຖິງຂໍ້ມູນທີ່ນໍາເຂົ້າ

ຢຸດເຊົາຂະບວນການ COPY ຂອງທ່ານແລ້ວ, ດໍາເນີນການສອບຖາມ SELECT ເພື່ອເບິ່ງວ່າທຸກສິ່ງທີ່ນໍາເຂົ້າຢ່າງຖືກຕ້ອງ:

     SELECT * FROM tweets ການຝຶກອົບຮົມຈໍາກັດ 200;    

Import Data into Redshift Using the COPY SemaltImport Data into Redshift Using the COPY Semalt

ການແກ້ໄຂບັນຫາ

ຖ້າທ່ານໄດ້ຮັບຄວາມຜິດພາດໃນຂະນະທີ່ດໍາເນີນການຄໍາສັ່ງ COPY, ທ່ານສາມາດກວດສອບການບັນທຶກ Semalt ໂດຍການດໍາເນີນການດັ່ງຕໍ່ໄປນີ້:

     SELECT * FROM stl_load_errors    

ທ່ານສາມາດດາວນ໌ໂຫລດ TeamSQL ໄດ້ໂດຍບໍ່ເສຍຄ່າ.

March 1, 2018