Cloud Spanner: ฐานข้อมูลแรกของคุณ

1. ภาพรวม

อัปเดตล่าสุด 23-07-2020

Cloud Spanner คืออะไร

Google Cloud Spanner เป็นฐานข้อมูลที่เป็นไปตาม ACID ซึ่งกระจายอยู่ทั่วโลก ซึ่งจะจัดการการจำลอง การชาร์ดดิ้ง และการประมวลผลธุรกรรมโดยอัตโนมัติ เพื่อให้คุณปรับขนาดได้อย่างรวดเร็วเพื่อให้เป็นไปตามรูปแบบการใช้งานใดก็ได้และทำให้ผลิตภัณฑ์ประสบความสำเร็จ

ฟีเจอร์หลัก

  • ฐานข้อมูลเชิงสัมพันธ์สร้างขึ้นเพื่อการปรับขนาด: ทุกอย่างที่คุณคาดหวังจากฐานข้อมูลเชิงสัมพันธ์ ไม่ว่าจะเป็นสคีมา การค้นหา SQL และธุรกรรม ACID ผ่านการทดสอบการต่อสู้และพร้อมปรับขนาดทั่วโลก
  • ความพร้อมใช้งาน 99.999%: Cloud Spanner มีความพร้อมใช้งาน 99.999% ระดับชั้นนำของอุตสาหกรรมสำหรับอินสแตนซ์แบบหลายภูมิภาค โดยมีช่วงพักน้อยกว่า 10 เท่าเมื่อเทียบกับ 4 เก้า และให้การจำลองพร้อมกันอย่างโปร่งใสทั่วทั้งภูมิภาคและหลายภูมิภาค
  • การชาร์ดดิ้งอัตโนมัติ: Cloud Spanner เพิ่มประสิทธิภาพการทำงานด้วยการชาร์ดดิ้งข้อมูลโดยอัตโนมัติตามโหลดของคำขอและขนาดของข้อมูล ด้วยเหตุนี้ คุณจึงใช้เวลาน้อยลงในการกังวลว่าจะปรับขนาดฐานข้อมูลอย่างไร และมุ่งเน้นไปที่การปรับขนาดธุรกิจแทน

ดูฟีเจอร์ทั้งหมด

สิ่งที่คุณจะได้เรียนรู้

  • สร้างอินสแตนซ์ Cloud Spanner ผ่าน Google Cloud Console
  • กำลังสร้างฐานข้อมูลใหม่ในอินสแตนซ์ Cloud Spanner
  • การใช้ sampledb เพื่อโหลดและค้นหาข้อมูลตัวอย่าง
  • กำลังลบอินสแตนซ์ Cloud Spanner

2. การตั้งค่าและข้อกำหนด

การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก

หากยังไม่มีบัญชี Google (Gmail หรือ Google Apps) คุณต้องสร้างบัญชีก่อน ลงชื่อเข้าใช้คอนโซล Google Cloud Platform ( console.cloud.google.com) และสร้างโปรเจ็กต์ใหม่

50983ac3fdbbf8d0.png

ea581205026ca8e3.png

โปรดจดจำรหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมด (ชื่อด้านบนมีคนใช้แล้ว และจะใช้ไม่ได้ ขออภัย) โดยจะเรียกใน Codelab ว่า PROJECT_ID ในภายหลัง

ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร Google Cloud

การใช้งาน Codelab นี้น่าจะมีค่าใช้จ่ายไม่เกิน 2-3 ดอลลาร์ แต่อาจมากกว่านี้หากคุณตัดสินใจใช้ทรัพยากรเพิ่มหรือปล่อยให้ทำงาน (ดูส่วน "ล้างข้อมูล" ในตอนท้ายของเอกสารนี้)

ผู้ใช้ใหม่ของ Google Cloud Platform มีสิทธิ์รับช่วงทดลองใช้ฟรี$300

3. เปิด Cloud Spanner ใน Cloud Console

ในคอนโซล Google Cloud ให้คลิกไอคอนเมนูที่ด้านซ้ายบนของหน้าจอสำหรับการนำทางด้านซ้าย

เลื่อนลงแล้วเลือก "Spaner"

46fe7785700d335.png

ตอนนี้คุณควรเห็น Cloud Spanner UI และสมมติว่าคุณกำลังใช้โปรเจ็กต์ที่ยังไม่ได้เปิดใช้ Cloud Spanner API คุณจะเห็นกล่องโต้ตอบที่ขอให้เปิดใช้ หากเปิดใช้ API ไว้แล้ว ให้ข้ามขั้นตอนนี้

คลิก "เปิดใช้" เพื่อดำเนินการต่อ:

323474ade0d07c48.png

4. สร้างอินสแตนซ์

ก่อนอื่น คุณจะต้องสร้างอินสแตนซ์ Cloud Spanner ใน UI ให้คลิกที่ "สร้างอินสแตนซ์" หากต้องการสร้างอินสแตนซ์ใหม่ ให้ทำดังนี้

1126607e9b3a95f7.png

เมื่อคลิกที่ "สร้างอินสแตนซ์" ระบบจะนำคุณไปยังหน้าเว็บสำหรับสร้างอินสแตนซ์ ป้อนชื่ออินสแตนซ์แล้วเลือกการกำหนดค่า

คุณจะเลือกการตั้งค่าระดับภูมิภาคหรือหลายภูมิภาคก็ได้ การตั้งค่าระดับภูมิภาคจะมีตัวจำลองทั้งหมดในภูมิภาคเดียวกัน ส่วนการตั้งค่าแบบหลายภูมิภาคจะสร้างตัวจำลองสำหรับอ่านในหลายภูมิภาค คุณสามารถคลิก "เปรียบเทียบการกำหนดค่าภูมิภาค" เพื่อเปรียบเทียบการกำหนดค่า

f5f41323226be8b7.png

เมื่อเลือกการกําหนดค่าแล้ว ข้อมูลสรุปจะแสดงในแผงด้านขวา

be5e99711a47047f.png

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

คลิก "สร้าง" เพื่อสร้างอินสแตนซ์

97cf7427660e36bd.png

อินสแตนซ์ Cloud Spanner พร้อมใช้งานแล้ว

13ac2d48ea60370b.png

5. สร้างฐานข้อมูล

หากต้องการสร้างฐานข้อมูลใหม่ ให้คลิกที่ "สร้างฐานข้อมูล":

71761f0803038a5.png

ป้อนชื่อสำหรับฐานข้อมูลใหม่ คุณยังระบุสคีมาในจุดนี้ได้ด้วย (ไม่บังคับ)

d7ca47df879931c2.png

เราจะข้ามการให้สคีมาในขั้นตอนนี้ และคลิกที่ "สร้าง" เพื่อสร้างฐานข้อมูลเปล่า

e398ab29aad3d601.png

หลังจากคลิก "สร้าง" แล้ว ระบบจะสร้างฐานข้อมูลใหม่ดังนี้

4164af0df20ca180.png

6. โหลดและค้นหาข้อมูลตัวอย่าง

ใน Codelab นี้ เราจะโหลดและค้นหาข้อมูลตัวอย่างโดยใช้ sampledb Sampledb มีชุดข้อมูลที่หลากหลายและสามารถนำเข้าข้อมูลไปยังฐานข้อมูลที่มีอยู่ได้

เราจะเรียกใช้โปรแกรมใน Google Cloud Shell หากนี่เป็นครั้งแรกที่คุณใช้ Google Cloud Shell สำหรับโปรเจ็กต์นี้ คุณจะเห็นโลโก้ Google Cloud Shell บนแถบนำทางด้านบน โดยกดเปิดใช้งาน Cloud Shell

e23b881395174c00.png

เมื่อเปิดใช้งานแล้ว คุณจะเห็นคอนโซลที่ด้านล่าง

b885c452da656556.png

ในคอนโซล ให้โคลนที่เก็บ sampledb แล้วทำตามวิธีการเพื่อติดตั้งทรัพยากร Dependency ต่อไปนี้

$ git clone https://github.com/cloudspannerecosystem/sampledb.git
Cloning into 'sampledb'...
remote: Enumerating objects: 59, done.
remote: Counting objects: 100% (59/59), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 59 (delta 23), reused 35 (delta 11), pack-reused 0
Unpacking objects: 100% (59/59), done.
$ cd sampledb
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt

เมื่อติดตั้งการอ้างอิงแล้ว คุณสามารถเรียกใช้ sampledb เพื่อสร้างฐานข้อมูลใหม่ที่มีข้อมูลตัวอย่างได้ โดยทำดังนี้

$ python batch_import.py my-first-instance my-sample-db

เมื่อตรวจสอบเรียบร้อยแล้ว คุณจะเห็นส่วน "my-sample-db" โดยมีตารางใหม่ 2 ตาราง (ความคิดเห็นและเรื่องราว)

eb4adca281f8704a.png

ชุดข้อมูลตัวอย่างประกอบด้วยเรื่องราวและความคิดเห็นจาก Hacker News คุณสามารถคลิก "คำค้นหา" ในการเริ่มค้นหาและเรียกดูข้อมูล ให้ทำดังนี้

8b95a3b14709b285.png

7. ล้างข้อมูล

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

กลับไปยังหน้าอินสแตนซ์โดยคลิก "my-first-instance" ที่มุมซ้ายบน:

2a226b985f43074f.png

คลิก "ลบ" สำหรับลบอินสแตนซ์

27ee8f9656364f98.png

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

537e18cf2dd7a668.png

ป้อนชื่ออินสแตนซ์แล้วกด "ลบ"

8. ยินดีด้วย

คุณได้สร้างอินสแตนซ์ Cloud Spanner ใหม่ สร้างฐานข้อมูลที่ว่างเปล่า โหลดข้อมูลตัวอย่างแล้ว และลบอินสแตนซ์ Cloud Spanner (ไม่บังคับ)

หัวข้อที่ครอบคลุม

  • สร้างอินสแตนซ์ Cloud Spanner ผ่าน Google Cloud Console
  • กำลังสร้างฐานข้อมูลใหม่ในอินสแตนซ์ Cloud Spanner
  • การใช้ sampledb เพื่อโหลดและค้นหาข้อมูลตัวอย่าง
  • กำลังลบอินสแตนซ์ Cloud Spanner

ดูข้อมูลเพิ่มเติม