อะไรคือความแตกต่างระหว่างGoogle Cloud Bigtableและ Google Cloud Datastore / App Engine datastore และอะไรคือข้อดี / ข้อเสียที่ใช้งานได้จริง AFAIK Cloud Datastore สร้างขึ้นจาก Bigtable
อะไรคือความแตกต่างระหว่างGoogle Cloud Bigtableและ Google Cloud Datastore / App Engine datastore และอะไรคือข้อดี / ข้อเสียที่ใช้งานได้จริง AFAIK Cloud Datastore สร้างขึ้นจาก Bigtable
คำตอบ:
จากประสบการณ์การใช้งาน Datastore และการอ่านเอกสาร Bigtable ความแตกต่างที่สำคัญคือ:
Cloud Bigtable ได้รับการออกแบบมาสำหรับ บริษัท และองค์กรขนาดใหญ่ที่มักมีความต้องการข้อมูลขนาดใหญ่พร้อมกับภาระงานแบ็กเอนด์ที่ซับซ้อน
Bigtable และ Datastore แตกต่างกันมาก ใช่ที่เก็บข้อมูลถูกสร้างขึ้นบน Bigtable แต่ก็ไม่ได้ทำให้เป็นแบบนี้ นั่นก็เหมือนกับการบอกว่ารถสร้างขึ้นบนล้อดังนั้นรถก็ไม่ต่างจากล้อมากนัก
Bigtable และ Datastore ให้โมเดลข้อมูลที่แตกต่างกันมากและมีความหมายที่แตกต่างกันมากในการเปลี่ยนแปลงข้อมูล
ความแตกต่างที่สำคัญคือ Datastore ให้ธุรกรรม ACID ที่เหมือนฐานข้อมูล SQL บนชุดย่อยของข้อมูลที่เรียกว่ากลุ่มเอนทิตี (แม้ว่าภาษาแบบสอบถาม GQL จะมีข้อ จำกัด มากกว่า SQL มาก) Bigtable เป็น NoSQL อย่างเคร่งครัดและมาพร้อมกับการรับประกันที่อ่อนแอกว่ามาก
ถ้าคุณอ่านเอกสาร BigTable เป็นนี้และ Datastore เป็นMegastore Datastore คือ BigTable บวกกับการจำลองแบบธุรกรรมและดัชนี (และมีราคาแพงกว่ามาก)
ฉันจะพยายามสรุปคำตอบทั้งหมดข้างต้นรวมทั้งสิ่งที่ได้รับใน Coursea Google Cloud Platform Big Data และ Machine Learning Fundamentals
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Category | BigTable | Datastore | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology | Based on HBase(uses HBase API) | Uses BigTable itself | |
| ---------------- | | | |
| Access Mataphor | Key/Value (column-families) like Hbase | Persistent hashmap | |
| ---------------- | | | |
| Read | Scan Rows | Filter Objects on property | |
| ---------------- | | | |
| Write | Put Row | Put Object | |
| ---------------- | | | |
| Update Granularity | can't update row ( you should write a new row, can't update one) | can update attribute | |
| ---------------- | | | |
| Capacity | Petabytes | Terbytes | |
| ---------------- | | | |
| Index | Index key only (you should properly design the key) | You can index any property of the object | |
| Usage and use cases | High throughput, scalable flatten data | Structured data for Google App Engine | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
ประเด็นที่ค่อนข้างน้อยที่ต้องพิจารณา ณ เดือนพฤศจิกายน 2559 ไลบรารีไคลเอ็นต์ python bigtable ยังอยู่ใน Alpha ซึ่งหมายความว่าการเปลี่ยนแปลงในอนาคตอาจไม่สามารถใช้งานร่วมกันได้ นอกจากนี้ไลบรารี python ขนาดใหญ่ยังเข้ากันไม่ได้กับสภาพแวดล้อมมาตรฐานของ App Engine คุณต้องใช้แบบยืดหยุ่น
นี่อาจเป็นความแตกต่างที่สำคัญอีกชุดหนึ่งระหว่าง Google Cloud Bigtable และ Google Cloud Datastore พร้อมกับบริการอื่น ๆ เนื้อหาที่แสดงในภาพด้านล่างยังสามารถช่วยคุณในการเลือกบริการที่เหมาะสม
Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.
Choose Bigtable if the data is:
Big
● Large quantities (>1 TB) of semi-structured or structured data
Fast
● Data is high throughput or rapidly changing
NoSQL
● Transactions, strong relational semantics not required
And especially if it is:
Time series
● Data is time-series or has natural semantic ordering
Big data
● You run asynchronous batch or real-time processing on the data
Machine learning
● You run machine learning algorithms on the data
Bigtable is designed to handle massive workloads at consistent low latency
and high throughput, so it's a great choice for both operational and analytical
applications, including IoT, user analytics, and financial data analysis.
Datastore มีแอปพลิเคชันที่พร้อมกว่าและเหมาะสำหรับบริการที่หลากหลายโดยเฉพาะอย่างยิ่งสำหรับไมโครเซอร์วิส
เทคโนโลยีพื้นฐานของ Datastore คือ Big Table ดังนั้นคุณสามารถจินตนาการได้ว่า Big Table มีประสิทธิภาพมากกว่า
Datastore มาพร้อมกับการใช้งานฟรี 20K ต่อวันคุณสามารถคาดหวังว่าจะโฮสต์เซิร์ฟเวอร์ที่มีฐานข้อมูลที่เชื่อถือได้โดยมีค่าใช้จ่ายเป็นศูนย์
คุณยังสามารถตรวจสอบไลบรารี Datastore ORM นี้ได้ซึ่งมาพร้อมกับคุณสมบัติที่ยอดเยี่ยมมากมาย https://www.npmjs.com/package/ts-datastore-orm