Thursday, September 29, 2016

Pentaho 5.4 PDI Connect Google Sheets API

Pentaho 5.4 PDI Connect Google Sheets APIs

         ปัจจุบันนี้ Google Sheet เป็นตัวเลือกลำดับต้น ๆ ที่จะใช้งานแทน Excel เนื่องจากความสามารถที่ทำได้เหมือนกับ Excel และยังสามารถแชร์งานร่วมกันได้หลายคนบนระบบ Cloud และในตัว Pentaho PDI version 5.4 ก็มี Step Google Sheet Input/Output ที่สามารถดึงข้อมูลที่มีอยู่มาทำ ETL ได้
        ต่อไปนี้จะอธิบายวิธีเชื่อมต่อระหว่าง Google Sheet กับ Pentaho PDI
เริ่มจากเราต้องมี Google Account ที่เป็น For Developer ก่อน
สมัครตามลิงค์นี้เลย สมัคร Google Accout วิธีสมัครตามลิงค์นี้ Youtube ,Blog
สมัครแล้วจะได้หน้านี้ขึ้นมา https://console.cloud.google.com


หน้าเมนูนี้ของ Google เราสามารถใช้งาน API ของ Google ได้หลากหลาย
ขั้นตอนที่เราจะทำ
ขั้นตอนที่ 1.เราจะสร้างไฟล์ p12 Keys ก่อนเพื่อ Connect กับ Google sheet ของเราได้
ขั้นตอนที่ 2.กรอกข้อมูลใน Step Google sheet Input ใน Pentaho PDI
ขั้นตอนที่ 3.กำหนดสิทธิ์ Share การเข้าถึงไฟล์ Google sheet ที่เราต้องการ Connect
ขั้นตอนที่ 4.Connected.
ขั้นตอนที่ 1.เราจะสร้างไฟล์ p12 Keys ก่อนเพื่อ Connect กับ Google sheet ของเราได้
เลือก Sheet API

เลือก Credentials
คลิ๊ก Create Credentials


เลือก Service accout key
เพราะเราจะเชื่อมต่อแบบ
Server-to Server เพราะเรา
จะรันบน Server Petaho กับ Server Google Cloud
ตรง Service Account เลือก
New service account เพราะเราจะเอา Account ID






และเลือก Key type เป็น P12
เพราะ Step Google Sheet Input ใน Pentaho PDI ใช้ไฟล์ Type P12 เป็นตัวเชื่อมต่อ
เมื่อคลิ๊ก Create จะแสดงหน้านี้
กรอกข้อมูลตามช่อง
Service account name : กรอกชื่ออะไรก็ได้ที่เราต้องการ

ตรง Role เลือก Project >>
>> Owner หรือ >> Edit
กด Close ไป
เราจะได้ ID และ Service Account ตามที่เราได้ตั้งชื่อไว้

เลือก Manage Service Accounts หากเราต้องการสร้างไฟล์ P12 อีกครั้ง.

เลือก Account ที่เราต้องการ


สร้างไฟล์ Sheet ใน Google Drive


สร้างข้อมูลเพื่อทดสอบ


เข้า Pentaho PDI

ขั้นตอนที่ 2.กรอกข้อมูลใน Step Google sheet Input ใน Pentaho PDI



สร้าง Tranformations ใหม่สำหรับทดลอง

เลือก Step Google Spreadsheet Input
ลากมาวางใน Tranformation ที่เราสร้างขึ้น
กรอก Email address ย้ำนะครับ ไม่ใช่ Email เรานะ แต่เป็น Email ของ Service Account ที่เราสร้างไว้ใน Google APIs ในขั้นตอนแรก

กลับไปที่ Google APIs เอา Email ของ Service Account มากรอกนะครับ

แบบนี้นะครับ 
แล้วก็ Browe file P12 ที่สร้างไว้ (หาให้เจอนะครับว่าเก็บไว้ Folder ไหน)

อยู่ลึกมาก Y_Y
เครื่องใครเครื่องมันนะครับ อันนี้ผมเก็บไว้ตรง Desktop นะครับ
! บางที่ถ้าเครื่องใครมีทั้ง User Root กับ User ส่วนตัวนี้ระวังนะครับ Folder Desktop นี้อยู่คนละ Folder นะครับ
หน้าตาไฟล์จะเป็นแบบนี้นะครับ
เมื่อ Browe สำเร็จจะได้หน้าตาแบบนี้นะครับมี Client ID ปรากฏขึ้น

กด Test connect ดูว่า Connect ได้ไหมถ้าได้จะแสดงแบบนี้ Success! Yes!
!อย่าลืมเครื่องเราต้องออก Net ได้นะ
ต่อไปเราจะ Connect กับ Sheet ที่เราต้องการข้อมูลละนะครับ
กด Browse นะครับ
!ไม่ใช่ Copy Spreadsheet ID มาแปะนะครับ
อ่าว+_+ แบบนี้แสดงว่า Service Account ID เรายังไม่รู้จัก Spreadsheet ที่เราต้องการดึงข้อมูลนะครับ
กลับมาที่ Spreadsheet ของเรา
กด Share

Copy Email ของ Service Account ที่เราสร้างไว้ (ต้องตรงกับที่เราใส่ลงใน PDI นะ)
เอามากรอกในช่องที่ทุกที่เราอยากแชร์ให้ใครก็ใส่ Email ไป
กรอกในช่องเสร็จ แบบนี้

กรอกแล้วจะได้ แบบนี้

กลับมา Browes SpreadSheet ใหม่
ถ้าแสดงชื่อ SpreadSheet แบบนี้มาละ
จะได้ SpreadSheet ID แสดงแบบนี้ (!ย้ำไม่ใช่ Copy มาวางนะ)
ต่อไปมา Browse Sheet ท่ี่เราต้องการข้อมูลละ ใกล้ละ ๆ
จะแสดงข้อมูลชื่อ Sheet ที่อยู่ใน SpreadSheet ให้เราเลือก

เลือก Field ท่ี่เราต้องการข้อมูลละ กด Get Feild
ถ้ามาแบบนี้ก็เป็นอันเสร็จ
    เราสามารถเอาข้อมูลที่เชื่อมมาได้เอาไปทำETL ต่อได้ไม่ว่าจะเป็นการออกรายงาน
การวิเคราะห์ต่าง ๆ ซึ่งการดึงจาก SpreadSheet ที่ผู้ใช้งานให้อยู่แล้วเราไม่ต้องไปวางระบบงาน หรือขันตอนทำงานอะไร และตัว SpreadSheet เองก็ใช้งานได้สะดวก
ขอบคุณ
ที่มา : ไม่มีอันนี้โมสด

No comments:

Post a Comment