SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Google Big Table and App Engine
ผศ. ดร. กานดา รุณนะพงศา สายแก้ว
ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น
http://twitter.com/krunapon
1
หัวข้อที่จะพูด
BigTable
Google App Engine
2
BigTable คืออะไร
 BigTable คือระบบการเก็บข้อมูลแบบกระจายตามเซิร์ฟเวอร์นับ
พันตัวที่กูเกิลออกแบบเพื่อเก็บข้อมูลขนาดใหญ่ระดับ Perabytes
(10^15 หรือ 2^50 bytes) ได้
 BigTable เป็นระบบที่ได้รับการพิสูจน์แล้วว่า
– สามารถเก็บข้อมูลจานวนมากและค้นหาข้อมูลขนาดใหญ่ได้
อย่างรวดเร็ว
– มีความยืดหยุ่นในการเก็บข้อมูลที่มีความหลากหลาย (URLs,
เว็บเพจ, และรูปภาพถ่ายทางดาวเทียม)
3
ประวัติของ Big Table
BigTable ถูกพัฒนาขึ้นมาในปี ค.ศ. 2004 โดยทีมนักวิจัยของกูเกิลซึ่ง
ประกอบด้วย
– Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh,
Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes,
Robert E. Gruber
จุดประสงค์ของการพัฒนา BigTable
– ประยุกต์ใช้งานได้กว้างขวาง (Wide applicability)
– ปรับขนาดได้ตามภาระงาน (Scalability)
– ประสิทธิภาพสูง (High performance)
– คงอยู่สูง (High availability)
4
แอปพลิเคชันที่ใช้ Bigtable
5
• ใช้ภายในกูเกิลกับผลิตภัณฑ์มากกว่า 60 ตัว
• ใช้โดยบุคคลหรือผลิตภัณฑ์
ที่ไม่ใช่ของกูเกิลผ่านการใช้
Google App Engine
Traditional RDBMSs vs. BigTable
คุณลักษณะ Traditional
RDBMSs
BigTable
โมเดลการเก็บข้อมูล เป็นตาราง 2 มิติที่มีได้
หลายแถว แต่ละแถวมีได้
หลายคอลัมน์
เป็นตารางหลายมิติที่มิติ
หนึ่งเป็นมิติเกี่ยวกับเวลา
อินเดกซ์ที่ใช้ตาม ชื่อคอลัมน์ ชื่อแถวหรือชื่อคอลัมน์
ที่เก็บข้อมูลสาหรับหนึ่ง
ตาราง
เครื่องเดียวกันและอยู่ใน
ฮาร์ดดิกส์
หลายเครื่องและสามารถ
เลือกได้ว่าจะเก็บไว้ที่ฮาร์ด
ดิกส์หรือที่หน่วยความจา
6
โมเดลการเก็บข้อมูลของ BigTable
BigTable เป็นแม็ปแบบจัดเรียงข้อมูล (sorted map) หลาย
มิติซึ่งเก็บข้อมูลแบบกระจาย (distributed) แต่คงทน
(persistent)
แต่ละค่าที่เก็บในแม็ปจะถูกเข้าถึงโดยใช้คีย์ตามแถว (row
key) คีย์ตามคอลัมน์ (column key) และการประทับเวลา
(timestamp)
ค่าที่ถูกเก็บเป็นอาร์เรย์ของไบต์
(row:string, column:string, time:int64) → string 7
ตัวอย่างการเก็บข้อมูลเว็บใน BigTable
8
• ชื่อของแถวจะเป็นชื่อที่อยู่ของเว็บโดยที่ชื่อโดเมนจะขึ้นมาก่อนเพื่อให้ชื่อ URL ที่มีโดเมน
ที่อยู่ที่เดียวกันอยู่ติดกันหรือใกล้เคียงกัน
• คอลัมน์ contents: จะเป็นเว็บเพจใน www.cnn.com โดยที่จะมี
เวอร์ชันที่เก็บในเวลา t3, t5, และ t6
• คอลัมน์ anchor:* เก็บข้อความที่อ้างอิงถึงเว็บเพจ เช่น ที่เว็บ cnnsi.com มีการอ้างอิง
ถึงเว็บเพจใน www.cnn.com ด้วยข้อความ “CNN” ในเวลา t9 และที่เว็บ
my.look.ca มีการอ้างอิงถึงเว็บเพจใน www.cnn.com ด้วย
ข้อความ “CNN.com” ในเวลา t8
แถวของตาราง
คีย์ของแถว (row keys) จะเก็บเป็น string ความยาวได้
สูงสุดถึง 64KB (โดยปกติจะยาว 10-100 Bytes)
การจัดเรียงข้อมูลในตารางของ BigTable จะจัดเรียงตาม
คีย์ของแถวหรือชื่อของแถว
แต่ละช่วงหรือกลุ่มของแถว (row range) จะเรียกว่า tablet
ซึ่งเป็นหน่วยเพื่อใช้ในการกระจายข้อมูลและโหลด (load
balancing)
9
ครอบครัวคอลัมน์ (Column Families)
คีย์ของคอลัมน์จะถูกจัดกลุ่มให้อยู่ในเซ็ตเดียวกันที่เรียกว่า
ครอบครัวคอลัมน์ (Column Families)
ข้อมูลที่อยู่ในครอบครัวคอลัมน์เดียวกันมีชนิดข้อมูล
เหมือนกัน
จะมีจานวนครอบครัวคอลัมน์ได้มากที่สุดในระดับร้อย
เท่านั้นและมักไม่ค่อยเปลี่ยน
แต่ไม่มีการจากัดจานวนคอลัมน์ในตาราง
10
การใช้ครอบครัวคอลัมน์
ครอบครัวคอลัมน์จะเป็นข้อมูลที่ใช้ในสิ่งต่อไปนี้
– การจัดการระดับของการเข้าถึงข้อมูล (access control)
– การคิดค่าบริการสาหรับการใช้ดิสก์และการใช้หน่วยความจา
(disk and memory accounting)
รองรับแอปพลิเคชันที่หลากหลาย
– บางแอปพลิเคชันมีการเพิ่ม base data
– บางแอปพลิเคชันอ่าน base data แล้วสร้างคอลัมน์เพิ่ม
– บางแอปพลิเคชันอนุญาตให้อ่านข้อมูลเท่านั้น 11
คีย์ของคอลัมน์ (Column Key)
คีย์ของคอลัมน์จะอยู่ในรูปแบบ family:qualifier
ในกรณีของการเก็บเว็บเพจ
– ตัวอย่างของชื่อ column family คือ anchor ซึ่งเป็น
จุดอ้างอิงเว็บเพจ
– ตัวอย่างของ qualifier คือชื่อของเว็บไซต์ที่อ้างอิงเว็บ
เพจที่ถูกเก็บ
– เนื้อหาของข้อมูลทีเก็บคือข้อความที่สามารถถูกคลิกเพื่อ
ไปยังลิงก์ของเว็บเพจที่ถูกเก็บ 12
การประทับเวลา (Timestamps)
ในแต่ละช่องของ BigTable สามารถมีข้อมูลได้หลาย
เวอร์ชันซึ่งแต่ละเวอร์ชันถูกอินเดกซ์ด้วยการประทับเวลา
ชนิดของข้อมูลที่ใช้ในการประทับเวลาใน BigTable คือ 64-
bit integers
เวลาที่แสดงสามารถมีรายละเอียดในระดับ microseconds
13
ตัวอย่างโค้ดในการเขียนข้อมูลที่
BigTable
// Open the table
Table *T = OpenOrDie(“/bigtable/web/webtable”);
// Write a new anchor and delete an old anchor
RowMutation r1(T, “com.cnn.www”);
r1.Set(“anchor:www.c-span.org”, “CNN”);
r1.Delete(“anchor:www.abc.com”);
Operation op;
Apply(&op, &r1); 14
ตัวอย่างโค้ดในการอ่านข้อมูลที่
BigTable
Scanner scanner(T);
ScanStream *stream;
stream = scanner.FetchColumnFamily(“anchor”);
stream->setReturnAllVersions();
scanner.Lookup(“com.cnn.www”);
for (; !stream->Done(); stream->Next()) {
printf(“%s %s %11d %sn”, scanner.RowName(),
stream->ColumnName(), stream->MicroTimestamp(),
stream->Value());
}
15
รูปแบบไฟล์ที่เก็บข้อมูล
BigTable ใช้ Google File System ในการเก็บไฟล์ล็อก (log
files) และไฟล์ข้อมูล (data files)
Google SSTable เป็นรูปแบบไฟล์ที่ใช้ในการเก็บข้อมูล
BigTable
SSTable 1 อันจะเป็นการแม็ปจากคีย์ (keys) ไปยังค่า
ข้อมูล (values) ที่เก็บโดยที่ทั้งคีย์และค่าข้อมูลเป็นสตริงที่มี
ความยาวเท่าไหร่ก็ได้
16
ความเชื่อมโยงในการเก็บข้อมูล
 โครงสร้างของ BigTable จะประกอบด้วย 3 ส่วนหลัก
– ไลบรารีที่ลิงก์กับไคลเอนต์ที่เก็บและค้นหาข้อมูล
– เซิร์ฟเวอร์หลัก 1 ตัว (one master server)
– เซิร์ฟเวอร์แท็บเบล็กหลายตัว (many tablet servers)
 แท็บเบล็กเซิร์ฟเวอร์หลายตัวสามารถถูกเพิ่มหรือเอาออก
จากคลัสเตอร์ได้ตามการเปลี่ยนแปลงของภาระงาน
(workload)
17
หน้าที่ของเซิร์ฟเวอร์หลัก
กาหนดว่าแท็บเบล็กไหนจะในอยู่ในแท็บเบล็กเซิร์ฟเวอร์ใด
ทาให้เกิดความสดุลในการทางานของแท็บเบล็กเซิร์ฟเวอร์
ขอพื้นที่หน่วยความจาของไฟล์ที่ไม่ได้ใช้แล้ว
จัดการการเปลี่ยนแปลงของสกีม่าของตารางและครอบครัว
คอลัมน์
18
หน้าที่ของแท็บเบล็กเซิร์ฟเวอร์
จัดการกลุ่มของแท็บเบล็กตั้งแต่สิบตัวถึงพันตัวต่อแท็บ
เบล็กเซิร์ฟเวอร์
จัดการการอ่านและเขียนข้อมูลไปยังแท็บเบล็กและแยก
แท็บเบล็กที่ใหญ่เกินไปออกเป็นหลายตัว
ไคลเอนต์จะทาการสื่อสารโดยตรงกับแท็บเบล็กเซิร์ฟเวอร์
เพื่อจะร้องขอให้อ่านหรือเขียนข้อมูล ทาให้ในทางปฏิบัติ
ภาระงานของเซิร์ฟเวอร์หลักมีไม่มาก
19
สรุปโครงสร้างการเก็บข้อมูล
หนึ่ง BigTable คลัสเตอร์ (A BigTable cluster) จะประกอบไป
ด้วยหลายตาราง (table)
แต่ละตารางประกอบด้วยแท็บเบล็ก
แต่ละแท็บเบล็กประกอบด้วยข้อมูลที่มีความสัมพันธ์และอยู่
ในช่วงแถวเดียวกัน (row range)
ตอนแรก ตารางจะมีเพียงแค่หนึ่งแท็บเบล็ก ต่อมาเมื่อตารางใหญ่
ขึ้นตารางก็จะแยกออกมาเป็นหลายแท็บเบล็ก
โดยปกติ 1 แท็บเบล็กจะมีขนาดข้อมูลประมาณ 100-200 MB
20
การประเมินประสิทธิภาพ
การทดลองนั้นทากับหนึ่ง BigTable คลัสเตอร์ที่
ประกอบด้วย N แท็บเบล็กเซิร์ฟเวอร์
– มีวัตถุประสงค์เพื่อที่จะวัดประสิทธิภาพ (performance)
และการปรับขนาดได้ตามภาระงาน (scalability) ของ
BigTable ตามจานวนแท็บเบล็กเซิร์ฟเวอร์ที่เพิ่มขึ้น
ทดสอบกับเครื่องคอมพิวเตอร์ทั้งหมด 1786 เครื่องโดยที่
แต่ละเครื่องมีฮาร์ดดิกส์ 400 GB และมี CPU dual-core 2
GHz 21
จานวนของโอเปอเรชันต่อวินาทีต่อ
แท็บเบล็กเซิร์ฟเวอร์
22
ผลการสรุปและวิเคราะห์
การอ่านข้อมูลแบบสุ่มใช้เวลามากที่สุดเนื่องจากต้องถ่าย
โอนข้อมูล 64 KB SSTable ผ่านเครือข่ายจาก GFS ไปยัง
แท็บเบล็กเซิร์ฟเวอร์
การเขียนข้อมูลแบบสุ่มหรือแบบตามลาดับใช้เวลาน้อยกว่า
การอ่านข้อมูลแบบสุ่มเพราะแต่ละแท็บเบล็กเซิร์ฟเวอร์เอา
สิ่งที่เขียนใส่ลงไปในล็อกเดียวกันและใช้การยืนยันการเขียน
(commit) แบบกลุ่ม
23
จานวนโอเปอเรชันต่อวินาที
24
ผลสรุปและวิเคราะห์
จานวนโอเปอเรชันที่ทาเพิ่มตามจานวนแท็บเบล็ก
เซิร์ฟเวอร์แต่ไม่ได้เพิ่มแบบเชิงเส้นซึ่งมีสาเหตุมาจาก
– การไม่สามารถทาให้ภาระงานของหลายเซิร์ฟเวอร์เกิด
ความสมดุลซึ่งส่วนหนึ่งมาจากการใช้ CPU และ
เครือข่ายของโปรเซสอื่น
– การปรับเปลี่ยนภาระงานเพื่อทาให้เกิดความสมดุลนั้น
จะต้องใช้เวลาซึ่งอาจจะไม่ทันเวลาที่ภาระงานเปลี่ยนไป
25
ข้อจากัดของ BigTable
 BigTable มีข้อจากัดในเรื่องของการไม่สนับสนุนคาสั่งสอบถาม
(query) บางประเภท เช่น
– การเปรียบเทียบข้อมูลที่ใช้เครื่องหมายไม่เท่ากันนั้น ในคาสั่ง
สอบถามหนึ่งใช้ได้เฉพาะการเปรียบเทียบข้อมูลชนิดเดียว
เท่านั้น
– ตัวอย่างคาสั่งสอบถามที่ทาไม่ได้
SELECT * FROM Person WHERE birth_year >= :min_year
AND height >= :min_height # ERROR
26
หัวข้อที่จะพูด
BigTable
Google App Engine
27
Google App Engine คืออะไร
Google App Engine คือการบริการที่ทาให้ผู้ใช้สามารถ
พัฒนาเว็บแอปพลิเคชันโดยใช้เซิร์ฟเวอร์ของกูเกิลซึ่งเป็น
เซิร์ฟเวอร์เดียวกับที่ใช้การรันแอปพลิเคชันต่างๆ ของกูเกิล
ผู้ใช้บริการจ่ายค่าบริการเฉพาะเท่าที่ใช้จริงและสามารถ
กาหนดว่าต้องการจะใช้มากเพียงใดด้วยตนเอง
ทุกแอปพลิเคชันสามารถใช้ได้ฟรีตราบใดที่ใช้พื้นที่ไม่เกิน
500 MB และมีจานวนการเข้าเยี่ยมชมไม่เกิน 5 ล้านเพจต่อ
เดือน 28
ข้อดีของ Google App Engine
 ผู้ใช้บริการไม่ต้องติดตั้งหรือซ่อมบารุงดูแลรักษาซอฟต์แวร์และ
ฮาร์ดแวร์ที่จาเป็นต้องมีเพื่อรันแอปพลิเคชัน
ผู้ใช้บริการไม่ต้องกังวลว่าจะต้องทาอย่างไรบ้างเพื่อรองรับการ
ขยายภาระงานที่เพิ่มขึ้นจากการใช้เว็บแอปพลิเคชันมากขึ้นโดยที่
กูเกิลให้บริการโดยใช้เทคโนโลยี Cloud Computing
ผู้ใช้บริการสามารถกาหนดโดเมนของเว็บแอปพลิเคชันของตน
การพัฒนาแอปพลิเคชันทาได้ง่ายมาก และสามารถทาได้ใน 2
สภาพแวดล้อมคือ Java และ Python
29
ข้อเสียของการใช้ Google App Engine
ข้อมูลที่เป็นความลับขององค์กรไม่ได้อยู่ในเซิร์ฟเวอร์ที่
องค์กรสามารถบังคับควบคุมได้
มีข้อจากัดในเรื่องของการใช้บางภาษาเช่น VB, C#, และ
PHP
มีความเสี่ยงในการพัฒนาเว็บแอปพลิเคชันเพราะกูเกิลไม่
เคยรับประกันความเสี่ยงหรือรับประกันว่าจะให้บริการ
อย่างดีตลอดไป
30
แนวทางการพัฒนาเว็บ
31
สถาปัตยกรรมของ Google App Engine
32
Google App Engine ในฐานะ
Application Server
33
การพัฒนาเว็บแอปพลิเคชันบน GAE
โดยใช้ Python
 ดาวน์โหลดและติดตั้งเครื่องมือที่ใช้ในการพัฒนา
เรียนรู้การใช้เฟรมเวิร์ค webapp
เรียนรู้การใช้ Users Service
การจัดการฟอร์มโดยใช้ webapp
การใช้ Datastore
การใช้ Templates
การใช้ Static Files
การอัปโหลด Application 34
App Engine Python SDK
เราสามารถพัฒนาและอัปโหลดแอปพลิเคชัน Python
สาหรับ Google App Engine โดยใช้ App Engine Python
software development kit (SDK)
The Python SDK สามารถทางานบนเครื่องคอมพิวเตอร์ที่
มี Python 2.5 บนระบบปฏิบัติการ Windows, Mac OS X
และ Linux
– ยังไม่สามารถทางานได้กับ Python 3
35
การดาวน์โหลด Python SDK
ให้ไปที่ http://code.google.com/appengine/downloads.html
เลือกGoogle App Engine SDK for Python
เลือกดาวน์โหลดตามแพลตฟอร์มที่ใช้
36
การพัฒนา Hello World Application
 แตกไฟล์ google_appengine_1.3.8.zip
 สร้างตัวจัดการการร้องขอแบบง่าย (Creating a Simple
Request Handler)
สร้างไฟล์กาหนดค่า (Creating a Configuration File)
ทดสอบแอปพลิเคชัน (Testing the application)
37
สร้างตัวจัดการการร้องขอแบบง่าย
 สร้างไดเรกทอรี helloworld ภายใต้ไดเรกทอรี google_appengine
สร้างไฟล์ helloworld.py ในไดเรกทอรี โดยที่เนื้อหาในไฟล์มีดังนี้
38
ไฟล์นี้จะตอบสนองการร้องขอโดยการแสดงบรรทัดว่างและข้อความ “Hello, world!”
สร้างไฟล์ Configuration
แอปพลิเคชัน App Engine มีไฟล์ configuration ที่ชื่อว่าapp.yaml
ไฟล์นี้อธิบายเกี่ยวกับสคริปต์ที่จะถูกเรียกเพื่อตอบสนอง URLs
สร้างไฟล์ app.yaml ซึ่งมีเนื้อหาดังต่อไปนี้
39
ทดสอบแอปพลิเคชัน
 สั่งให้เว็บเซิร์ฟเวอร์เริ่มทางานโดยการใช้คาสั่ง dev_appserver.py
ทดสอบแอปพลิเคชันโดยเปิดเบราว์เซอร์ที่ http://localhost:8080
40
การใช้เฟรมเวิร์ก
หากผู้พัฒนาแอปพลิเคชันจะต้องเขียนโค้ดเยอะมากด้วย
ตนเอง ก็จะทาให้การพัฒนาแอปพลิเคชันเป็นไปช้าและมี
โอกาสมีข้อผิดพลาดเยอะ
Google App Engine สนับสนุนการใช้เฟรมเวิร์กซึ่งเขียน
โดยใช้ Python และสนับสนุนการติดต่อแบบ CGI หลายตัว
อาทิเช่น Django, CherryPy, Pylons, and web.py
Google App Engine มีเว็บแอปพลิเคชันเฟรมเวิร์กแบบง่าย
ที่เรียกว่า webapp 41
การใช้เฟรมเวิร์ก webapp
แอปพลิเคชัน webapp มี 3 ส่วน
– อย่างน้อยหนึ่ง RequestHandler คลาสที่ประมวลผลการ
ร้องขอและการสร้างการตอบรับ
– อินสแตนท์ WSGIApplication ซึ่งเชื่อมโยงระหว่างการ
ร้องขอที่เข้ามาและตัวจัดการโดยดูที่ URL
– เมธอดหลักที่รัน WSGIApplication โดยใช้ CGI
adaptor
42
ลงทะเบียนแอปพลิเคชัน
ไปที่ https://appengine.google.com/
 กูเกิลจะให้กรอกข้อมูลของแอปพลิเคชันและเบอร์
โทรศัพท์เพื่อจะได้รับโค้ดยืนยันทาง SMS
 จากนั้น ผู้ใช้กรอกโค้ดที่ได้รับทาง SMS
 เปลี่ยนแปลงแก้ไขไฟล์ app.yaml เพื่อแก้ไขชื่อของแอป
พลิเคชันตามที่กรอกในแบบฟอร์ม
43
แก้ไขไฟล์ app.yaml
44
แก้ไขไฟล์ app.yaml โดยที่แก้ไขชื่อ application
ทาการอัปโหลดขึ้นเว็บ appspot.com
45
ใช้สคริปต์ appcfg.py และคาสั่ง update ในการอัปโหลดขึนเว็บ
เว็บแอปพลิเคชันที่อัปโหลดและลงทะเบียนแล้ว
46
สรุป
 Google App Engine เป็นการบริการที่ให้ผู้ใช้พัฒนาแอป
พลิเคชันบนแพลตฟอร์มของ Google ที่มีความสามารถ
ปรับขนาดได้ (scalability) โดยใช้เทคโนโลยี cloud
computing และมีความปลอดภัยสูง (security)
Google App Engine ใช้ Bigtable และ Google File System
ในการเก็บและค้นหาข้อมูล
 Google App Engine ใช้งานได้ง่าย
47
แหล่งข้อมูลอ้างอิง
http://labs.google.com/papers/bigtable.html
http://www.isriya.com/node/1896/bigtable-and-
chubby-lock-service
http://www.thaijavadev.com/index.php?option=com_c
ontent&view=section&layout=blog&id=15&Itemid=11
2
48
ขอขอบคุณ
http://twitter.com/krunapon
http://www.slideshare.net/krunapon
http://gear.kku.ac.th/~krunapon
krunapon@kku.ac.th
49

Mais conteúdo relacionado

Mais procurados (7)

บทที่1 ความรู้พื้นฐาน
บทที่1 ความรู้พื้นฐานบทที่1 ความรู้พื้นฐาน
บทที่1 ความรู้พื้นฐาน
 
Database
DatabaseDatabase
Database
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
ระบบการจัดเก็บและค้นคืนสารสนเทศ
ระบบการจัดเก็บและค้นคืนสารสนเทศระบบการจัดเก็บและค้นคืนสารสนเทศ
ระบบการจัดเก็บและค้นคืนสารสนเทศ
 
Search techniques
Search techniquesSearch techniques
Search techniques
 

Semelhante a Google bigtableappengine

Data processing
Data processingData processing
Data processing
chukiat008
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
chanoot29
 
Greenstone From Paper to Digital Collection
GreenstoneFrom Paper to Digital CollectionGreenstoneFrom Paper to Digital Collection
Greenstone From Paper to Digital Collection
Satapon Yosakonkun
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
Sarawut Panchon
 
การค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ตการค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ต
jobasketball
 
การค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ตการค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ต
jobasketball
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
Yongyut Nintakan
 
งาคอม
งาคอมงาคอม
งาคอม
lookpair
 

Semelhante a Google bigtableappengine (20)

Data processing
Data processingData processing
Data processing
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
 
Unit3
Unit3Unit3
Unit3
 
Database1
Database1Database1
Database1
 
Introduction-Management NoSQL with MongoDB.pdf
Introduction-Management NoSQL with MongoDB.pdfIntroduction-Management NoSQL with MongoDB.pdf
Introduction-Management NoSQL with MongoDB.pdf
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Introการพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
 
Greenstone From Paper to Digital Collection
GreenstoneFrom Paper to Digital CollectionGreenstoneFrom Paper to Digital Collection
Greenstone From Paper to Digital Collection
 
ระบบ เทคนิค และมาตรฐาน ในการพัฒนา(เว็บไซต์)ห้องสมุด ในฐานะบริการสาธารณะ
ระบบ เทคนิค และมาตรฐาน ในการพัฒนา(เว็บไซต์)ห้องสมุด ในฐานะบริการสาธารณะระบบ เทคนิค และมาตรฐาน ในการพัฒนา(เว็บไซต์)ห้องสมุด ในฐานะบริการสาธารณะ
ระบบ เทคนิค และมาตรฐาน ในการพัฒนา(เว็บไซต์)ห้องสมุด ในฐานะบริการสาธารณะ
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
 
ตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linuxตัวอย่างบทที่3โปรแกรม filter บน linux
ตัวอย่างบทที่3โปรแกรม filter บน linux
 
การค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ตการค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ต
 
การค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ตการค้นหาข้อมูลจากอินเทอร์เน็ต
การค้นหาข้อมูลจากอินเทอร์เน็ต
 
Data manipulation with RapidMiner Studio 7
Data manipulation with RapidMiner Studio 7Data manipulation with RapidMiner Studio 7
Data manipulation with RapidMiner Studio 7
 
Db1
Db1Db1
Db1
 
รายงาน Project2
รายงาน Project2รายงาน Project2
รายงาน Project2
 
How to manage e-Media
How to manage e-MediaHow to manage e-Media
How to manage e-Media
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
อินเทอร์เน็ต
อินเทอร์เน็ตอินเทอร์เน็ต
อินเทอร์เน็ต
 
งาคอม
งาคอมงาคอม
งาคอม
 
Big Data as a Service
Big Data as a ServiceBig Data as a Service
Big Data as a Service
 

Mais de Kanda Runapongsa Saikaew

ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัยใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
Kanda Runapongsa Saikaew
 
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษาบริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
Kanda Runapongsa Saikaew
 
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
Kanda Runapongsa Saikaew
 
Social Media (โซเชียลมีเดีย)
Social Media (โซเชียลมีเดีย)Social Media (โซเชียลมีเดีย)
Social Media (โซเชียลมีเดีย)
Kanda Runapongsa Saikaew
 

Mais de Kanda Runapongsa Saikaew (20)

ความรู้ไอทีช่วยเลี้ยงลูกได้
ความรู้ไอทีช่วยเลี้ยงลูกได้ความรู้ไอทีช่วยเลี้ยงลูกได้
ความรู้ไอทีช่วยเลี้ยงลูกได้
 
Google Apps Basic for Education
Google Apps Basic for Education Google Apps Basic for Education
Google Apps Basic for Education
 
Moodle basics
Moodle basicsMoodle basics
Moodle basics
 
Thai socialmedia
Thai socialmediaThai socialmedia
Thai socialmedia
 
Introduction to JSON
Introduction to JSONIntroduction to JSON
Introduction to JSON
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Android dev tips
Android dev tipsAndroid dev tips
Android dev tips
 
Introduction to Google+
Introduction to Google+Introduction to Google+
Introduction to Google+
 
ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัยใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
ใช้ไอทีอย่างไรให้เป็นประโยชน์ เหมาะสม และปลอดภัย
 
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษาบริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
บริการไอทีของมหาวิทยาลัยขอนแก่นเพื่อนักศึกษา
 
Baby Health Journal
Baby Health Journal Baby Health Journal
Baby Health Journal
 
Using Facebook as a Supplementary Tool for Teaching and Learning
Using Facebook as a Supplementary Tool for Teaching and LearningUsing Facebook as a Supplementary Tool for Teaching and Learning
Using Facebook as a Supplementary Tool for Teaching and Learning
 
วิธีการติดตั้งและใช้ Dropbox
วิธีการติดตั้งและใช้ Dropboxวิธีการติดตั้งและใช้ Dropbox
วิธีการติดตั้งและใช้ Dropbox
 
Using Facebook and Google Docs for Teaching and Sharing Information
Using Facebook and Google Docs for Teaching and Sharing InformationUsing Facebook and Google Docs for Teaching and Sharing Information
Using Facebook and Google Docs for Teaching and Sharing Information
 
เครื่องมือเทคโนโลยีสารสนเทศฟรีที่น่าใช้
เครื่องมือเทคโนโลยีสารสนเทศฟรีที่น่าใช้เครื่องมือเทคโนโลยีสารสนเทศฟรีที่น่าใช้
เครื่องมือเทคโนโลยีสารสนเทศฟรีที่น่าใช้
 
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
การใช้เฟซบุ๊กเพื่อแลกเปลี่ยนเรียนรู้
 
คู่มือการใช้ Dropbox
คู่มือการใช้ Dropboxคู่มือการใช้ Dropbox
คู่มือการใช้ Dropbox
 
การใช้เฟซบุ๊กเพื่อการเรียนการสอน
การใช้เฟซบุ๊กเพื่อการเรียนการสอนการใช้เฟซบุ๊กเพื่อการเรียนการสอน
การใช้เฟซบุ๊กเพื่อการเรียนการสอน
 
การใช้เฟซบุ๊กอย่างปลอดภัยและสร้างสรรค์
การใช้เฟซบุ๊กอย่างปลอดภัยและสร้างสรรค์การใช้เฟซบุ๊กอย่างปลอดภัยและสร้างสรรค์
การใช้เฟซบุ๊กอย่างปลอดภัยและสร้างสรรค์
 
Social Media (โซเชียลมีเดีย)
Social Media (โซเชียลมีเดีย)Social Media (โซเชียลมีเดีย)
Social Media (โซเชียลมีเดีย)
 

Google bigtableappengine