1. บทนำ
ใน Codelab นี้ คุณจะได้เรียนรู้วิธีใช้ Spanner Data Boost เพื่อค้นหาข้อมูล Spanner จาก BigQuery โดยใช้การค้นหาแบบรวมที่ไม่มี ETL และไม่ส่งผลกระทบต่อฐานข้อมูล Spanner

Spanner Data Boost คือบริการแบบ Serverless ที่มีการจัดการครบวงจรซึ่งมีทรัพยากรคอมพิวเตอร์อิสระสำหรับภาระงาน Spanner ที่รองรับ Data Boost ช่วยให้คุณเรียกใช้การค้นหาข้อมูลวิเคราะห์และส่งออกข้อมูลโดยแทบไม่มีผลกระทบต่อภาระงานที่มีอยู่บนอินสแตนซ์ Spanner ที่จัดสรรไว้โดยใช้รูปแบบการใช้งานแบบออนดีมานด์แบบไร้เซิร์ฟเวอร์
เมื่อใช้ร่วมกับการเชื่อมต่อภายนอกของ BigQuery แล้ว Data Boost จะช่วยให้คุณค้นหาข้อมูลจาก Spanner ไปยังแพลตฟอร์มการวิเคราะห์ข้อมูลได้อย่างง่ายดายโดยไม่ต้องมีการเคลื่อนย้ายข้อมูล ETL ที่ซับซ้อน
ข้อกำหนดเบื้องต้น
- ความเข้าใจพื้นฐานเกี่ยวกับ Google Cloud Console
- ทักษะพื้นฐานในอินเทอร์เฟซบรรทัดคำสั่งและเชลล์ของ Google
สิ่งที่คุณจะได้เรียนรู้
- วิธีการทำให้ใช้งานได้อินสแตนซ์ Spanner
- วิธีโหลดข้อมูลเพื่อสร้างฐานข้อมูล Spanner
- วิธีเข้าถึงข้อมูล Spanner จาก BigQuery โดยไม่ต้องใช้ Data Boost
- วิธีเข้าถึงข้อมูล Spanner จาก BigQuery ด้วย Data Boost
สิ่งที่คุณต้องมี
- บัญชี Google Cloud และโปรเจ็กต์ Google Cloud
- เว็บเบราว์เซอร์ เช่น Chrome
2. การตั้งค่าและข้อกำหนด
การตั้งค่าสภาพแวดล้อมแบบเรียนรู้ด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console แล้วสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี



- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะไม่ซ้ำกันในโปรเจ็กต์ Google Cloud ทั้งหมดและเปลี่ยนแปลงไม่ได้ (เปลี่ยนไม่ได้หลังจากตั้งค่าแล้ว) Cloud Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งโดยปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นคืออะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยทั่วไปจะระบุเป็น
PROJECT_ID) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสแบบสุ่มอีกรหัสหนึ่งได้ หรือคุณอาจลองใช้ชื่อของคุณเองและดูว่ามีชื่อนั้นหรือไม่ คุณจะเปลี่ยนแปลงรหัสนี้หลังจากขั้นตอนนี้ไม่ได้ และรหัสจะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ายังมีค่าที่ 3 ซึ่งคือหมายเลขโปรเจ็กต์ที่ API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 นี้ได้ในเอกสารประกอบ
- จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตาม Codelab นี้จะไม่มีค่าใช้จ่ายมากนัก หรืออาจไม่มีค่าใช้จ่ายเลย หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินนอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างขึ้นหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากระยะไกลจากแล็ปท็อปได้ แต่ใน Codelab นี้คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จาก Google Cloud Console ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

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

เครื่องเสมือนนี้มาพร้อมเครื่องมือพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ คุณไม่จำเป็นต้องติดตั้งอะไร
3. สร้างอินสแตนซ์และฐานข้อมูล Spanner
เปิดใช้ Spanner API
ใน Cloud Shell ให้ตรวจสอบว่าได้ตั้งค่ารหัสโปรเจ็กต์แล้ว
gcloud config set project [YOUR-PROJECT-ID]
PROJECT_ID=$(gcloud config get-value project)
กำหนดค่าภูมิภาคเริ่มต้นเป็น us-central1 คุณสามารถเปลี่ยนเป็นภูมิภาคอื่นที่ Spanner รองรับได้ในการกำหนดค่าระดับภูมิภาค
gcloud config set compute/region us-central1
เปิดใช้ Spanner API โดยทำดังนี้
gcloud services enable spanner.googleapis.com
สร้างอินสแตนซ์ Spanner
ในขั้นตอนนี้ เราจะตั้งค่าอินสแตนซ์ Spanner สำหรับ Codelab โดยเปิด Cloud Shell แล้วเรียกใช้คำสั่งต่อไปนี้
export SPANNER_INSTANCE_ID=codelab-demo
export SPANNER_REGION=regional-us-central1
gcloud spanner instances create $SPANNER_INSTANCE_ID \
--config=$SPANNER_REGION \
--description="Spanner Codelab instance" \
--nodes=1
เอาต์พุตจากคำสั่ง:
$ gcloud spanner instances create $SPANNER_INSTANCE_ID \
--config=$SPANNER_REGION \
--description="Spanner Codelab instance" \
--nodes=1
Creating instance...done.
สร้างฐานข้อมูล
เมื่ออินสแตนซ์ทำงานแล้ว คุณจะสร้างฐานข้อมูลได้ Spanner อนุญาตให้มีฐานข้อมูลหลายรายการในอินสแตนซ์เดียว
ฐานข้อมูลคือที่ที่คุณกำหนดสคีมา นอกจากนี้ คุณยังควบคุมผู้ที่มีสิทธิ์เข้าถึงฐานข้อมูล ตั้งค่าการเข้ารหัสที่กำหนดเอง กำหนดค่าเครื่องมือเพิ่มประสิทธิภาพ และตั้งค่าระยะเวลาเก็บรักษาได้ด้วย
หากต้องการสร้างฐานข้อมูล ให้ใช้เครื่องมือบรรทัดคำสั่ง gcloud อีกครั้ง
export SPANNER_DATABASE=codelab-db
gcloud spanner databases create $SPANNER_DATABASE \
--instance=$SPANNER_INSTANCE_ID
เอาต์พุตจากคำสั่ง:
$ gcloud spanner databases create $SPANNER_DATABASE \
--instance=$SPANNER_INSTANCE_ID
Creating database...done.
4. โหลดข้อมูล
คุณต้องมีข้อมูลบางอย่างในฐานข้อมูลก่อนจึงจะใช้ Data Boost ได้ โดยคุณจะต้องสร้าง Bucket ของ Cloud Storage, อัปโหลดการนำเข้า Avro ลงใน Bucket และเริ่มงานนำเข้า Dataflow เพื่อโหลดข้อมูล Avro ลงใน Spanner
เปิดใช้ API
โดยให้เปิดพรอมต์ Cloud Shell หากปิดพรอมต์ก่อนหน้าไปแล้ว
อย่าลืมเปิดใช้ Compute, Cloud Storage และ Dataflow API
gcloud services enable compute.googleapis.com storage.googleapis.com dataflow.googleapis.com
เอาต์พุตของคอนโซลที่คาดไว้
$ gcloud services enable compute.googleapis.com storage.googleapis.com dataflow.googleapis.com
Operation "operations/acat.*snip*" finished successfully.
จัดเตรียมไฟล์นำเข้าใน Cloud Storage
ตอนนี้ให้สร้าง Bucket เพื่อจัดเก็บไฟล์ Avro โดยทำดังนี้
export GCS_BUCKET=spanner-codelab-import_$(date '+%Y-%m-%d_%H_%M_%S')
gcloud storage buckets create gs://$GCS_BUCKET
เอาต์พุตของคอนโซลที่คาดไว้
$ gcloud storage buckets create gs://$GCS_BUCKET
Creating gs://spanner-codelab-import/...
จากนั้นดาวน์โหลดไฟล์ tar จาก github แล้วแตกไฟล์
wget https://github.com/dtest/spanner-databoost-tutorial/releases/download/v0.1/spanner-chat-db.tar.gz
tar -xzvf spanner-chat-db.tar.gz
เอาต์พุตของคอนโซลที่คาดไว้
$ wget https://github.com/dtest/spanner-databoost-tutorial/releases/download/v0.1/spanner-chat-db.tar.gz
*snip*
*snip*(123 MB/s) - ‘spanner-chat-db.tar.gz' saved [46941709/46941709]
$
$ tar -xzvf spanner-chat-db.tar.gz
spanner-chat-db/
spanner-chat-db/users.avro-00000-of-00002
spanner-chat-db/user_notifications-manifest.json
spanner-chat-db/interests-manifest.json
spanner-chat-db/users-manifest.json
spanner-chat-db/users.avro-00001-of-00002
spanner-chat-db/topics-manifest.json
spanner-chat-db/topics.avro-00000-of-00002
spanner-chat-db/topics.avro-00001-of-00002
spanner-chat-db/user_interests-manifest.json
spanner-chat-db/spanner-export.json
spanner-chat-db/interests.avro-00000-of-00001
spanner-chat-db/user_notifications.avro-00000-of-00001
spanner-chat-db/user_interests.avro-00000-of-00001
จากนั้นอัปโหลดไฟล์ไปยัง Bucket ที่คุณสร้างขึ้น
gcloud storage cp spanner-chat-db gs://$GCS_BUCKET --recursive
เอาต์พุตของคอนโซลที่คาดไว้
$ gcloud storage cp spanner-chat-db gs://$GCS_BUCKET --recursive
Copying file://spanner-chat-db/users.avro-00000-of-00002 to gs://spanner-codelab-import/spanner-chat-db/users.avro-00000-of-00002
Copying file://spanner-chat-db/user_notifications-manifest.json to gs://spanner-codelab-import/spanner-chat-db/user_notifications-manifest.json
Copying file://spanner-chat-db/interests-manifest.json to gs://spanner-codelab-import/spanner-chat-db/interests-manifest.json
Copying file://spanner-chat-db/users-manifest.json to gs://spanner-codelab-import/spanner-chat-db/users-manifest.json
Copying file://spanner-chat-db/users.avro-00001-of-00002 to gs://spanner-codelab-import/spanner-chat-db/users.avro-00001-of-00002
Copying file://spanner-chat-db/topics-manifest.json to gs://spanner-codelab-import/spanner-chat-db/topics-manifest.json
Copying file://spanner-chat-db/topics.avro-00000-of-00002 to gs://spanner-codelab-import/spanner-chat-db/topics.avro-00000-of-00002
Copying file://spanner-chat-db/topics.avro-00001-of-00002 to gs://spanner-codelab-import/spanner-chat-db/topics.avro-00001-of-00002
Copying file://spanner-chat-db/user_interests-manifest.json to gs://spanner-codelab-import/spanner-chat-db/user_interests-manifest.json
Copying file://spanner-chat-db/spanner-export.json to gs://spanner-codelab-import/spanner-chat-db/spanner-export.json
Copying file://spanner-chat-db/interests.avro-00000-of-00001 to gs://spanner-codelab-import/spanner-chat-db/interests.avro-00000-of-00001
Copying file://spanner-chat-db/user_notifications.avro-00000-of-00001 to gs://spanner-codelab-import/spanner-chat-db/user_notifications.avro-00000-of-00001
Copying file://spanner-chat-db/user_interests.avro-00000-of-00001 to gs://spanner-codelab-import/spanner-chat-db/user_interests.avro-00000-of-00001
Completed files 13/13 | 54.6MiB/54.6MiB
Average throughput: 46.4MiB/s
นำเข้าข้อมูล
เมื่อมีไฟล์ใน Cloud Storage แล้ว คุณจะเริ่มงานนำเข้า Dataflow เพื่อโหลดข้อมูลลงใน Spanner ได้
gcloud dataflow jobs run import_chatdb \
--gcs-location gs://dataflow-templates-us-central1/latest/GCS_Avro_to_Cloud_Spanner \
--region us-central1 \
--staging-location gs://$GCS_BUCKET/tmp \
--parameters \
instanceId=$SPANNER_INSTANCE_ID,\
databaseId=$SPANNER_DATABASE,\
inputDir=gs://$GCS_BUCKET/spanner-chat-db
เอาต์พุตของคอนโซลที่คาดไว้
$ gcloud dataflow jobs run import_chatdb \
> --gcs-location gs://dataflow-templates-us-central1/latest/GCS_Avro_to_Cloud_Spanner \
> --region us-central1 \
> --staging-location gs://$GCS_BUCKET/tmp \
> --parameters \
> instanceId=$SPANNER_INSTANCE_ID,\
> databaseId=$SPANNER_DATABASE,\
> inputDir=gs://$GCS_BUCKET/spanner-chat-db
createTime: '*snip*'
currentStateTime: '*snip*'
id: *snip*
location: us-central1
name: import_chatdb
projectId: *snip*
startTime: '*snip*'
type: JOB_TYPE_BATCH
คุณตรวจสอบสถานะของงานการนำเข้าได้ด้วยคำสั่งนี้
gcloud dataflow jobs list --filter="name=import_chatdb" --region us-central1
เอาต์พุตของคอนโซลที่คาดไว้
$ gcloud dataflow jobs list --filter="name=import_chatdb"
`--region` not set; getting jobs from all available regions. Some jobs may be missing in the event of an outage. https://cloud.google.com/dataflow/docs/concepts/regional-endpoints
JOB_ID NAME TYPE CREATION_TIME STATE REGION
*snip* import_chatdb Batch 2024-04-*snip* Done us-central1
ยืนยันข้อมูลใน Spanner
ตอนนี้ ให้ไปที่ Spanner Studio และตรวจสอบว่ามีข้อมูลอยู่ ก่อนอื่น ให้ขยายตารางหัวข้อเพื่อดูคอลัมน์

ตอนนี้ให้เรียกใช้การค้นหาต่อไปนี้เพื่อให้แน่ใจว่ามีข้อมูล
SELECT COUNT(*) FROM topics;
ผลลัพธ์ที่คาดไว้

5. อ่านข้อมูลจาก BigQuery
ตอนนี้คุณมีข้อมูลใน Spanner แล้ว ก็ถึงเวลาเข้าถึงข้อมูลจากภายใน BigQuery โดยคุณจะต้องตั้งค่าการเชื่อมต่อภายนอกกับ Spanner ใน BigQuery
หากคุณมีสิทธิ์ที่เหมาะสม ให้สร้างการเชื่อมต่อภายนอกกับ Spanner โดยทำตามขั้นตอนต่อไปนี้
คลิกปุ่ม "เพิ่ม" ที่ด้านบนของ BigQuery Console แล้วเลือกตัวเลือก "การเชื่อมต่อกับแหล่งข้อมูลภายนอก"


ตอนนี้คุณเรียกใช้การค้นหาเพื่ออ่านข้อมูลจาก Spanner ได้แล้ว เรียกใช้การค้นหานี้ในคอนโซล BigQuery โดยตรวจสอบว่าได้แทนที่ค่าสำหรับ ${PROJECT_ID} แล้ว
SELECT *
FROM (
SELECT * FROM EXTERNAL_QUERY("projects/${PROJECT_ID}/locations/us-central1/connections/codelab-demo-chat_no-databoost", "SELECT users.userUUID, SHA256(users.email) as hashed_email, COUNT(*) num_topics, m.last_posted from users HASH JOIN (select MAX(t.created) last_posted, t.userUUID FROM topics t GROUP BY 2) m USING (userUUID)HASH JOIN topics USING (userUUID) GROUP BY users.userUUID, users.email, m.last_posted")
)
ORDER BY num_topics DESC;
ตัวอย่างเอาต์พุต

คุณดูข้อมูลเกี่ยวกับงานได้ เช่น ระยะเวลาที่ใช้ในการเรียกใช้และปริมาณข้อมูลที่ประมวลผลในแท็บ "ข้อมูลงาน"

จากนั้นคุณจะเพิ่มการเชื่อมต่อ Data Boost ไปยัง Spanner และเปรียบเทียบผลลัพธ์
6. อ่านข้อมูลโดยใช้ Data Boost
หากต้องการใช้ Spanner Data Boost คุณต้องสร้างการเชื่อมต่อภายนอกใหม่จาก BigQuery ไปยัง Spanner คลิก "เพิ่ม" ในคอนโซล BigQuery แล้วเลือก "Connections from external data sources" อีกครั้ง
กรอกรายละเอียดด้วย URI การเชื่อมต่อเดียวกันกับ Spanner เปลี่ยน "รหัสการเชื่อมต่อ" แล้วเลือกช่อง "ใช้การเพิ่มข้อมูล"

เมื่อสร้างการเชื่อมต่อ Data Boost แล้ว คุณจะเรียกใช้การค้นหาเดิมได้ แต่ต้องใช้ชื่อการเชื่อมต่อใหม่ อีกครั้ง ให้แทนที่ project_id ในการค้นหา
SELECT *
FROM (
SELECT * FROM EXTERNAL_QUERY("projects/${PROJECT_ID}/locations/us-central1/connections/codelab-demo-chat_use-databoost", "SELECT users.userUUID, SHA256(users.email) as hashed_email, COUNT(*) num_topics, m.last_posted from users HASH JOIN (select MAX(t.created) last_posted, t.userUUID FROM topics t GROUP BY 2) m USING (userUUID)HASH JOIN topics USING (userUUID) GROUP BY users.userUUID, users.email, m.last_posted")
)
ORDER BY num_topics DESC;
คุณควรได้รับชุดผลลัพธ์เหมือนเดิม เวลาเปลี่ยนแปลงไหม
7. ทำความเข้าใจ Data Boost
Spanner Data Boost ช่วยให้คุณใช้ทรัพยากรที่ไม่เกี่ยวข้องกับทรัพยากรอินสแตนซ์ Spanner ได้ ซึ่งจะช่วยลดผลกระทบของปริมาณงานวิเคราะห์ต่อปริมาณงานการดำเนินงานเป็นหลัก
คุณจะเห็นข้อความนี้หากเรียกใช้คําค้นหาเพื่อไม่ให้ใช้ Data Boost 2-3 ครั้งในระยะเวลา 2-3 นาที อย่าลืมแทนที่ ${PROJECT_ID}
SELECT *
FROM (
SELECT * FROM EXTERNAL_QUERY("projects/${PROJECT_ID}/locations/us-central1/connections/codelab-demo-chat_no-databoost", "SELECT users.userUUID, SHA256(users.email) as hashed_email, COUNT(*) num_topics, m.last_posted from users HASH JOIN (select MAX(t.created) last_posted, t.userUUID FROM topics t GROUP BY 2) m USING (userUUID)HASH JOIN topics USING (userUUID) GROUP BY users.userUUID, users.email, m.last_posted")
)
ORDER BY num_topics DESC;
จากนั้นรออีกสักครู่ แล้วเรียกใช้การค้นหาเพื่อใช้ Data Boost อีก 2-3 ครั้ง อย่าลืมแทนที่ ${PROJECT_ID}
SELECT *
FROM (
SELECT * FROM EXTERNAL_QUERY("projects/${PROJECT_ID}/locations/us-central1/connections/codelab-demo-chat_use-databoost", "SELECT users.userUUID, SHA256(users.email) as hashed_email, COUNT(*) num_topics, m.last_posted from users HASH JOIN (select MAX(t.created) last_posted, t.userUUID FROM topics t GROUP BY 2) m USING (userUUID)HASH JOIN topics USING (userUUID) GROUP BY users.userUUID, users.email, m.last_posted")
)
ORDER BY num_topics DESC;
ตอนนี้กลับไปที่ Spanner Studio ใน Cloud Console แล้วไปที่ข้อมูลเชิงลึกของระบบ

คุณจะเห็นเมตริก CPU ที่นี่ การค้นหาที่เรียกใช้โดยไม่มี Data Boost จะใช้ CPU สำหรับการดำเนินการ "executesql_select_withpartitiontoken" แม้ว่าคำค้นหาจะเหมือนกัน แต่การดำเนินการ Data Boost จะไม่แสดงในการใช้งาน CPU ของอินสแตนซ์

ในหลายกรณี ประสิทธิภาพของคําค้นหาเชิงวิเคราะห์จะดีขึ้นเมื่อใช้ Data Boost ชุดข้อมูลในบทแนะนำนี้มีขนาดเล็กและไม่มีภาระงานอื่นๆ ที่แข่งขันกันใช้ทรัพยากร ดังนั้น บทแนะนำนี้จึงไม่ได้คาดหวังที่จะแสดงการปรับปรุงประสิทธิภาพ
คุณสามารถลองใช้คำค้นหาและภาระงานต่างๆ เพื่อดูว่า Data Boost ทำงานอย่างไร เมื่อเสร็จแล้ว ให้ไปที่ส่วนถัดไปเพื่อล้างข้อมูลในสภาพแวดล้อม
8. ล้างข้อมูลในสภาพแวดล้อม
หากสร้างโปรเจ็กต์สำหรับ Codelab นี้โดยเฉพาะ คุณสามารถลบโปรเจ็กต์เพื่อล้างข้อมูลได้ หากต้องการเก็บโปรเจ็กต์ไว้และล้างข้อมูลคอมโพเนนต์แต่ละรายการ ให้ทำตามขั้นตอนต่อไปนี้
นำการเชื่อมต่อ BigQuery ออก
หากต้องการนำการเชื่อมต่อทั้ง 2 รายการออก ให้คลิกจุด 3 จุดข้างชื่อการเชื่อมต่อ เลือก "ลบ" แล้วทำตามวิธีการเพื่อลบการเชื่อมต่อ

ลบที่เก็บข้อมูล Cloud Storage
gcloud storage rm --recursive gs://$GCS_BUCKET
ลบอินสแตนซ์ Spanner
หากต้องการล้างข้อมูล ให้ไปที่ส่วน Cloud Spanner ของ Cloud Console แล้วลบอินสแตนซ์ "codelab-demo" ที่เราสร้างขึ้นใน Codelab

9. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึงไปแล้ว
- วิธีการทำให้ใช้งานได้อินสแตนซ์ Spanner
- วิธีโหลดข้อมูลลงใน Spanner โดยใช้ Dataflow
- วิธีเข้าถึงข้อมูล Spanner จาก BigQuery
- วิธีใช้ Spanner Data Boost เพื่อหลีกเลี่ยงผลกระทบต่ออินสแตนซ์ Spanner สำหรับการค้นหาเชิงวิเคราะห์จาก BigQuery
10. แบบสำรวจ
เอาต์พุต: