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 🙂

รีวิวการฝึกงานกับบานาน่า โคดดิ้ง โดย ออย (วิทยาการคอมพิวเตอร์ มหาวิทยาลัยเชียงใหม่)

ผม “ออย (Ooy)” จากภาควิชาวิทยาการคอมพิวเตอร์ (CS34) คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่ครับ ^ ^

ต้องบอกก่อนว่าบริษัท Banana Coding เนี่ยเค้าเคยมีโครงการดี ๆ ที่จัดกับทางภาควิชาฯ ของผม ก็คือ โครงการ Android Application Development Workshop ซึ่งในตอนนั้นผมอยู่ปี 3 พอดี ก็เลยมีโอกาสได้เข้าร่วมด้วย ตอนแรกที่มาบริษัทนี้ เหมือนโดนตีหัวเข้าบ้านเลยครับ เพราะมาครั้งแรกก็ดูน่าอยู่มาก สะอาด บริษัทแลดูร่มรื่น ของกินเยอะ พี่ ๆ คือเอ็นจอยกับการสอนใน Workshop สุด ๆ จนทำให้เกิดความประทับใจที่จะมาลองฝึกงานที่นี้ แต่แล้วสิ่งที่ผมคิดก็เปลี่ยนไปนิดหน่อย ตอนแรกผมกะจะฝึกงานที่นี่แค่ 2 เดือน แต่วันนึงที่นอนอยู่หอ เพื่อนก็โทรมาหาว่า

A: มึง ไปสหกิจกันมะ เนี่ยอาจารย์เค้าบอกว่าไปเถอะได้ประสบการณ์ดี ได้เงินด้วย บลา ๆ ๆ ๆ ๆ

Ooy: ห๊ะ…อ๋อ โอเค ไปก็ได้ ไหน ๆ ตัวเรียนก็ครบแล้ว

จากวันนั้นทุกอย่างก็เปลี่ยนไป เพื่อนที่ชวนไปสหกิจคนนั้นก็ไม่ไป (เท) เหลือเราที่ตกลงไปแล้ว ก็เลย เอาวะ! ลองดูสักหน่อยก็ได้ ก็เลยตัดสินใจแจ้งทางบริษัทนี้ว่า จะขอเปลี่ยนจากฝึก 2 เดือน เป็นฝึก 6 เดือน ทางบริษัทก็ใจดี ยินดีเปลี่ยนให้ในทันทีเลย

เมื่อมาเริ่มฝึกงานที่นี่ มันจะมีอยู่ 2 ช่วงที่แตกต่างกันคือ ช่วงที่ไฟไหม้ บรรยากาศที่พี่ ๆ ตั้งใจทำงาน ไร้เสียงรบกวนซึ่งกันและกัน ทำเอาช่วงแรก ๆ ที่มาที่นี่รู้สึกอึดอัดเล็กน้อย กับอีกช่วงนึงที่ไฟไม่ได้ไหม้งาน พี่ ๆ เค้าก็กลับมาร่าเริง 55555 ยิ้มแป้น หยอกล้อ เล่นปาเป้า ปิงปอง พากินเลี้ยงบ้าง กินจุกจิกบ้างเรื่อย ๆ อาจจะไม่บ่อยเท่าที่อื่น แต่ที่นี่มันไม่เหมือนใคร จะหยิบขนม ออกมานั่งทำงานข้างนอกก็ได้ จะนั่งทำงานที่บ้านก็ได้ (แต่ไม่ได้ทำงานที่บ้านได้ทุกวันนะ ทำได้บ้างบางครั้ง) แถวยังมีเจ้าแมวมาคอยแจกความน่ารัก และกวนเอามาก ๆ มาคอยเล่นด้วยอยู่ตลอด สนุกดี

เรื่องความรู้ที่ได้จากที่นี่ ยิ่งไม่ต้องกลัวเลย ได้เยอะแน่นอน เพราะตั้งแต่เข้าบริษัทมา พี่เขาก็จัดเทรนการใช้งานภาษา หรือเครื่องมือต่าง ๆ ที่บริษัทจำเป็นต้องใช้ทั้งหมด เช่น GitHub, Trello, Slack, Ruby on Rails , HTML+CSS+JS, Angular+TypeScript เป็นต้น พอเสร็จจากการเทรนเครื่องมือแล้ว พี่เขาก็ให้เราทดลองทำงานจริง โดยการเข้าทำงานกับรุ่นพี่ที่มีประสบการณ์ทำงานมาแล้ว พี่เขาจะคอยช่วยเหลือเราเสมอเมื่อร้องขอ ในโปรเจคที่ตรงกับความสนใจของเรา อย่างผมก็ได้ลองเขียนแอป Android ส่วนเพื่อนอีก 2 คนก็ทำสิ่งที่เขาสนใจไป

เรื่องการทำความรู้จักกับพี่ๆ ทั้งบริษัทอาจจะเป็นไปได้ยากบ้าง แต่มันก็ต้องใช้เวลา ถึงแม้พี่ ๆ จะมีความเฟรนลี่ อยากรู้อะไรเดินเข้าไปถามได้ทันที แต่เอาเข้าจริง ๆ แล้วเราจะได้รู้จักพี่ ๆ เขามากขึ้นจากการได้ใช้เวลาทำงานร่วมกันมากกว่า ยิ่งอยู่ในโปรเจคเดียวกัน หรือไปทานข้าว นั่งเล่นนั่งคุยด้วยกันก็จะยิ่งรู้จักมากขึ้น

ประโยชน์จากการมาฝึกงานครั้งนี้คือมีเยอะมากเลยครับ ทั้งการเพิ่มสกิลค้นคว้าด้วยตนเอง การเพิ่มทักษะการเขียนโปรแกรมให้มากขึ้น ทักษะการทำงานเป็นทีมและการสื่อสาร รวมไปถึงยังช่วยเพิ่มความเข้าใจให้กับตัวเรามากขึ้นด้วยว่าสิ่งที่เราทำอยู่มันใช่สิ่งที่เราต้องการจริงหรือไม่ ซึ่งเราสามารถคุย ปรึกษากับพี่เขาในเรื่องนี้ได้

สุดท้ายนี้ก็อยากจะขอบคุณพี่ ๆ ในบริษัททุกคน ที่คอยช่วยเหลือในหลายๆ เรื่อง รวมถึงเพื่อน ๆ เด็กฝึกงานจากมหาวิทยาลัยแม่โจ้ ที่เขาฝึกมาก่อน 2 เดือน ที่คอยช่วยตั้งค่า สอนการเขียนต่าง ๆ และก็เพื่อนที่มาฝึกงานด้วยกัน และอยากขอบคุณโอกาสที่ได้จากการตอบตกลงกับเพื่อนที่โทรมาหาในตอนนั้น ที่ทำให้ผมได้มาเจอสิ่งที่ดี ๆ แบบนี้ครับ XD (ปล. รู้แล้วอย่าบอกใครนะ ว่าของกินที่นี่ เขามีฟรีตลอดปี อิอิ)

รีวิวการฝึกงานกับบานาน่า โคดดิ้ง โดย พันไมล์ (วิทยาการคอมพิวเตอร์ มหาวิทยาลัยเชียงใหม่)

ผมชื่อ นาย พันไมล์ ตานุ ชื่อเล่น ไมล์ ปัจจุบันศึกษาอยู่ที่ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่ ภาควิชาวิทยาการคอมพิวเตอร์ครับ ผมได้เริ่มรู้จักกับบริษัทบานาน่าโคดดิ้ง จากการได้เข้าฟังประสบการณ์ฝึกงานของรุ่นพี่ในมหาวิทยาลัย จึงได้เริ่มมีความสนใจที่จะเข้าฝึกงานที่นี่ โดยทางมหาวิทยาลัยต้องให้นักศึกษาออกฝึกงานเป็นเวลา 2 เดือน ผมจึงได้ยื่นสมัครเข้าฝึกงานที่บริษัทแห่งนี้ แต่ก่อนจะมีการรับสมัครฝึกงาน ทางบริษัทได้มีการจัดโครงการ Android Application Development Workshop ผมจึงได้เข้าร่วมโครงการแล้วได้ความรู้ต่างๆ แล้ว ยังได้สัมผัสกับสังคมความเป็นอยู่ของบริษัท ที่ค่อนข้างจะเป็นบริษัทเล็กๆ มีทีมงานประมาณ 20 กว่าคน จึงทำให้ได้รับการดูแลจากพี่ๆ เป็นอย่างดี

ตอนที่เข้ามาฝึกงานตอนแรกๆ ก็อาจจะมีเกร็งๆ ไม่ค่อยกล้าที่จะไปปรึกษาพี่ๆ แต่พอได้ทำความคุ้นเคย และเริ่มสนิทกันแล้ว พี่ๆ ทุกคนใจดีมากคอยให้คำปรึกษาในทุกๆ เรื่อง อีกอย่างหนึ่งที่จะต้องพูดถึงคือ เรื่องของกิน ที่บริษัทมีขนม น้ำอัดลม ชา กาแฟ ให้กินด้วย และพาไปเลี้ยงบ่อยมาก สังเกตุได้จากการที่น้ำหนักเพิ่มขึ้นมา 7 กิโลครับฮ่าๆ

ในช่วงแรกจะมีการสอนพื้นฐานในเรื่อง Git, Trello, HTML, CSS, Bootstrap, Ruby, Ruby on Rails , JavaScript, Typescipt, Angular 2, การเขียน Test ซึ่งเป็นความรู้ที่จะนำไปใช้ในการทำงาน โดยในแต่ละหัวข้อจะให้เวลาในการสอน 1 วันและหลังจากนั้นจะได้เริ่มทำงาน ซึ่งงานที่ได้รับมอบหมายคืองานที่จะต้องทำการส่งมอบลูกค้าจริงๆ โดยให้เข้าร่วมทีมในการพัฒนา ซึ่งการทำงานจะมีการแบ่งหน้าที่การทำงานออกเป็นส่วนๆ เป็นการฝึกการทำงานร่วมกับผู้อื่นได้เป็นอย่างดี ในการทำงานช่วงแรกๆ งานดำเนินไปค่นข้างช้า แต่เมื่อมีข้อสงสัยหรือติดขัดอะไรก็ไปถามพี่ๆ ซึ่งพี่ๆก็ช่วยแนะนำและแก้ไขปัญหาตลอด และการทำงานที่ไม่ได้ตึงเครียด ไม่ได้มีการบังคับให้ทำงานตลอดเวลา สามารถผ่อนคลายได้พักผ่อนได้ หลังจากได้ทำงานชิ้นแรกสำเร็จแล้วก็พบว่าตัวเองได้ความรู้จากการทำงานมากมาย ผมเคยได้ยินคำกล่าวที่ว่า ถ้าทำงานกับคนเก่งก็จะทำให้พัฒนาตัวเองให้เก่ง ซึ่งก็เป็นเรื่องจริง เพราะการที่เห็นคนอื่นทำได้แล้วตัวเราเองยังทำไม่ได้แสดงให้เห็นว่าเรายังพยายามไม่พอ ผมจึงได้เรียนรู้ว่าการพัฒนาตัวเองนั้นเป็นสิ่งสำคัญ ที่จะช่วยให้ประสบความสำเร็จในการดำเนินชีวิต

สุดท้ายนี้ผมขอขอบคุณพี่ๆ ทุกคนที่ช่วยให้ความรู้ คอยอบรมสั่งสอน และดูแลมาตลอดระยะเวลาการฝึกงาน ผมมีความสุขและดีใจมากที่ได้มาฝึกงานที่บริษัทแห่งนี้ครับ

รีวิวการฝึกงานกับบานาน่า โคดดิ้ง โดย เอ็ม (วิทยาการคอมพิวเตอร์ มหาวิทยาลัยเชียงใหม่)

สวัสดีครับผมชื่อเอ็มครับ เป็นนักศึกษาชั้นปีที่ 4 จากมหาวิทยาลัยเชียงใหม่ คณะวิทยาศาสตร์ สาขาวิทยาการคอมพิวเตอร์ ก่อนหน้าที่ผมจะมาฝึกงานที่นี่นั้น ทางมหาลัยมีแผนให้นักศึกษานั้นต้องเลือกว่า ต้องการจะฝึกงานแบบไหนซึ่งก็คือ

1) ฝึกงานทั่วไปใช้ระยะเวลาสองเดือน

2) โครงกราสหกิจศึกษาใช้ระยะเวลาหกเดือน

ซึ่งผมก็เลือกโครงการสหกิจแบบไม่ลังเล เพราะว่าไม่อยากเรียน​ ฮ่าๆๆ หลังจากนั้นก็ต้องมาคิดหนักว่าจะต้องเลือกบริษัทไหนอีก สำหรับผมแล้วนั้นการเลือกไปฝึกงานกับบริษัทใหญ่ๆนั้นตอนนั้นก็คงเป็นเพียงแค่ความคิดเพราะว่าเกรดเฉลี่ยไม่ค่อยจะดีซักเท่าไหร่ แล้วผมก็ไม่อยากไปฝึกงานไกลๆด้วยผมจึงเลือกบริษัทที่อยู่ในเชียงใหม่ “แล้วผมรู้จักบริษัทนี้ได้ยังไงหล่ะ ?” ในตอนแรกการที่จะเลือกสหกิจศึกษาผมจะต้องเก็บชั่วโมงอบรมกิจกรรมให้ครบครับ ซึ่งในตอนนั้นผมขาดชั่วโมงอบรมและตอนนี้กิจกรรมก็เหมือนจะหมดไปแล้ว แต่ไม่นานก็ได้ยินว่าจะมีบริษัทในเชียงใหม่จะมาทำ โครงการ workshop ให้นักศึกษาที่สนใจผมจึงเข้าร่วมเพื่อจะเก็บชั่วโมงให้ครบ ผมจึงได้มีโอกาสรู้จักบริษัทนี้เป็นครั้งแรก สิ่งที่ผมประทับใจในครั้งแรกเลยสำหรับที่นี่ก็คือตอนที่บริษัทมาบรรยายเกี่ยวกับโครงการ workshop เค้าพูดว่า “เค้าไม่อยากได้คนเก่ง เค้าอยากได้คนที่ไม่เก่งแล้วทำให้เก่ง” ในตอนนั้นผมรู้สึกว่านี่แหละทางของผม ผมกับเพื่อนอีกหลายคนจึงสมัครเข้าร่วม workshop กับทางบริษัท ในช่วงของการ workshop กับทางบริษัทนั้นผมรู้สึกว่าดีจังที่ได้มา ผมได้ความรู้หลายๆถึงแม้จะเป็นช่วงเวลาๆสั้นๆ ผมรู้สึกว่าที่นี่โอเคมาก จนเริ่มคิดว่าอยากจะมาฝึกงานที่นี่ หลังจากนั้นผมจึงได้ส่งใบสมัครมาที่นี่แล้วผมไม่นานผมก็ได้อีเมลตอบว่า “ผ่าน ทางบริษัทมีความยินดีตอบรับ การขอฝึกงานกับทางบริษัท” ผมรู้สึกดีใจมาก สบายใจแล้วมีที่ฝึกงานกับเค้าแล้ว หลังจากนั้นผมก็ตั้งหน้าตั้งตารอมากที่จะมาฝึกงาน

ในช่วงเดือนแรกของการมาฝึกงานที่นี่เป็น bootcamp หรือช่วงการฝึกก่อนทำจะงานจริงๆ เป็นอะไรนี่น่าตื่นเต้นดีครับเหมือนได้ใช้ความรู้ที่เรียนมาทุกอย่างๆ ตอนฟังพี่บรรยายก็ค่อนข้างเข้าใจมากขึ้นจากเดิม บางอย่างที่เคยไม่เข้าใจก็เข้าใจมากและผมก็ยังได้เพื่อนใหม่ด้วย ได้ช่วยเหลือกันทำการบ้านส่งพี่ แต่ถึงอย่างนั้นบรรยากาศรอบข้างกลับทำให้ผมกลับอึดอัดใจอย่างบอกไม่ถูก อาจเพราะผมยังไม่ชิน เพราะรู้สึกเครียดไปกับบรรยากาศรอบตัว ทุกอย่างดูเงียบไปหมด พี่ๆต่างคน ต่างทำงานดูเคร่งเครียดกัน จนผมรู้สึกว่านี่หรอการทำงานในชีวิตจริง ผมก็คิดตลอดว่าผมอาจจะยังไม่ชินกับบรรยากาศแบบนี้ หลังจากจบการเทรนคือการเข้าโปรเจคเพื่อทำงานจริงๆผมเริ่มได้รับมอบหมายงานให้ทำ ผมก็เริ่มทำงานของผมไปจนผมก็เข้าใจว่าผมก็ไม่ต่างกับพี่ซักเท่าไหร่ เราต่างต้องใช้สมาธิในการทำงานของตัวเอง หลังจากนั้นความรู้สึกอึดอัดต่างๆก็ได้หายไป ส่วนเรื่องโปรเจคหรืองานที่ทำแน่นอนว่าเราไม่เคยทำงานจริงมาก่อน ก็ค่อนข้างติดขัดเป็นธรรมดาแหละครับ แต่ดีที่พี่ๆคอยช่วยเหลือคอยแนะนำตลอดเวลาเราที่มีปัญหา นอกเหนือจากการทำงานแล้วบางครั้งพี่ก็สอนอย่างอื่นให้ด้วย เช่นคำบางอย่างเราอาจจะเคยได้ยินมาก่อนตอนเรียนแต่ไม่ได้หรือไม่ได้เข้าใจจริงๆ ก็มาเข้าใจตอนทำงานจริงๆแหละครับ ประทับใจมาก เป็นอะไรที่หาไม่ได้จากห้องเรียนจริงๆ ผมว่าผมคิดถูกมาครับที่เลือกมาฝึกงานและก็ฝึกกับที่นี่

สุดท้ายนี้ก็อยากขอบคุณพี่ๆทุกคนมากครับตลอดเวลาที่มาได้มาฝึกงานที่นี่เต็มไปด้วยความรู้สึกดีๆมากมายขอบคุณจริงๆครับ

How to develop Ruby on Rails with Windows 10’s Linux Subsystem

It has been quit sometimes that Windows developer don’t have an easy way to create Rails application. The most common way is to install Linux Virtual Machine or Docker. In a latest update of Windows 10, It has a new feature called “Windows Subsystem for Linux”. Underneath of this subsystem is Ubuntu Linux. In this article, I will guide you to create the Rails application based on Windows Subsystem for Linux.

Read more