Docker Install Vertica

รู้จัก Vertica ก่อนซักนิด

มาเริ่มกันก่อนนะ Vertica คืออะไร (เอาจริงคนเขียนเพิ่งได้ ยินชื่อนี้มาไม่กี่เดือนที่ผ่านมานี่เอง) ฐานข้อมูลที่ สามารถเก็บข้อมูลขนาดใหญ่ (แบบใหญ่มาก ๆ) และประมวลผลข้อมูลได้แบบรวดเร็ว ซึ่งการทำงานของ Vertica นี้จะแบ่งการทำงานภายใต้ Node ที่แยกออกจากกันทำให้สามารถ Query ข้อมูลได้ไวมากขึ้น

รายละเอียด คร่าว ๆ ละกัน มาดูการติดตั้งเลยดีกว่า

ก่อนเริ่มให้ทุกเครื่อง มี Docker ติดเครื่องไว้ก่อนนะ สามารถดูการติดตั้งได้ที่

สำหรับ Window
https://runnable.com/docker/install-docker-on-windows-10

สำหรับ Mac
https://docs.docker.com/v17.12/docker-for-mac/install/#install-and-run-docker-for-mac

มาเริ่มติดตั้งกันเลยดีกว่า

เริ่มด้วยการรัน Terminal ด้วยคำสั่ง (ถ้าใครใช้ Window สามารถ RUN CMD เป็น Run as Administrater)

docker pull cjonesy/docker-vertica

คำสั่งนี้จะเป็นการ ดึง Image จาก Docker hub มายังเครื่องของเรา

เมื่อ pull Image เรียบร้อยแล้วก็ทำการเช็คก่อนซักนิด

Docker images

เมื่อทำการดึง Image มาเรียบร้อยแล้วก็จะเริ่มรัน container ด้วยคำสั่ง

docker run -d -p 37878:5433 -h localhost --name vertica cjonesy/docker-vertica

**อธิบายหน่อย
-p หมายถึง port ที่สามารถเข้าถึงได้จาก ภายนอกไปยัง port 5432 ภายใน container
-h หมายถึง ip ที่สามารถเข้าถึง container ได้
–name หมายถึง ชื่อ container ที่เราสร้างขึ้น

ต่อมาเช็คสักนิดว่า Container เราได้สั่งรันไป รันสำเร็จรึเปล่า

docker ps -a

ถ้า Container รันสำเร็จ ก็มาเริ่มใช้งานได้เลย ก่อนอื่นเข้าไปภายใน Container ก่อนเลย

docker exec -it vertica bash

ก็จะได้

root@localhost:/#

ให้รันคำสั่งต่อด้วย

su dbadmin
และ
vsql

ติดตั้งเรียบร้อยแล้ว สามารถเช็ค version vertica ได้โดย

SELECT version();

เมื่อติดตั้งเสร็จเรียบร้อยแล้ว มาลองนำเข้าข้อมูลกัน ซึ่ง vertica รองรับการนำเข้าข้อมูลได้หลากหลาย เช่น .csv , .txt , .parquet ฯลฯ ในบทความนี้เราจะใช้ .csv มาเป็นตัวอย่างการนำเข้าข้อมูล สามารถทำตามกันได้เลย

ก่อนอื่น ออกจาก vsql ก่อน ด้วยคำสั่ง

dbadmin=> \q

โหลดตัวอย่างไฟล์มาลองใช้กัน

# mkdir data //สร้างโฟลเดอร์ data
# cd data //เข้าไปยังโฟลเดอร์
# wget https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2017-financial-year-provisional/Download-data/annual-enterprise-survey-2017-financial-year-provisional-csv.csv //download example .csv ไฟล์
# vsql //เข้าไปยัง vertica

เริ่มนำเข้าข้อมูลได้เลย

create table annual_enterprise_survey (
Year varchar(255),
Industry_aggregation_NZSIOC varchar(255),
Industry_code_NZSIOC varchar(255),
Industry_name_NZSIOC varchar(255),
Units varchar(255),
Variable_code varchar(255),
Variable_name varchar(255),
Variable_category varchar(255),
Value varchar(255),
Industry_code_ANZSIC06 varchar(255),
unique (Variable_name)
);
//สร้าง ​table ชื่อ annual_enterprise_survey
copy annual_enterprise_survey from local '/data/annual-enterprise-survey-2017-financial-year-provisional-csv.csv'  SKIP 1 delimiter ',' ENCLOSED BY '"'  ABORT ON ERROR NO COMMIT ; 
//นำข้อมูล จาก csv เข้าไปยัง vertica

รันเรียบร้อย ก็จะได้ตาราง annual_enterprise_survey ที่มีข้อมูลจาก csv ไฟล์ ทั้งหมด

สำหรับ บทควานนี้ก็ขอจบเพียงเท่านี้ ไว้เจอกันใหม่ ในบทความหน้า Bye Bye 🙂

สร้างโมเดลพยากรณ์น้ำท่วม ด้วยภาษา R

ในภาวะที่อากาศเปลี่ยนแปลงบ่อย วันหนึ่งมี 3 ฤดูก็เป็นได้ เช้าหนาว บ่ายร้อน เย็นฝนตก กลางคืนตกหนักกว่าเดิม จนตอนเช้า อ้าวเห้ย!! ไม่เหมือนที่คุยกันไว้นี่หว่า!!  น้ำท่วมซะงั้น ซึ่งในหลายๆปีที่ผ่านมาก็ได้เกิดเหตุการณ์เช่นนี้บ่อยครั้ง ทั้งในประเทศและต่างประเทศ หน่วยงานหลายหน่วยงานก็ได้มีการแจ้งเตือนปริมาณน้ำฝนที่จะตกในแต่ละพื้นที่ มีการแจ้งเตือนให้ป้องกัน ให้หลีกเลี่ยงเส้นทางน้ำท่วมต่างๆ แต่ในบางครั้งเราก็ไม่ทันได้ทราบข่าวได้ติดตาม ฝนตกลงมาหนัก น้ำก็ท่วมละสิ (ถ้าไม่เรียกน้ำท่วมก็ เรียก น้ำรอการระบาย ก็ได้นะ 555+ ก็รอระบายออกจริงๆ หนิ )

ถ้าเราสามารถคาดการณ์ปริมาณน้ำที่จะท่วมได้ละ มันจะดีมั้ย ก็เรามีข้อมูลของปริมาณน้ำ และ ปริมาณน้ำฝน จากกรมอุตินิยมวิทยาบ้านเรานี่เอง แต่ไม่ใช่ว่าเรารู้ ข้อมูลเหล่านี้จะบอกได้เลยว่า วันนี้ฝนจะตกหนัก วันนี้น้ำจะท่วม เราต้องมีเครื่องมือเข้ามาช่วย นั้นคือ นั่นคือ นั่นคือ (ยัง ยัง จะเล่นอีก 555+) R แล้ว ​R คืออะไร ติดตั้งยังได้ มาเริ่มกันเลยดีกว่า

Read more