1. สร้างไปป์ไลน์ Reverse ETL จาก Databricks ไปยัง Spanner โดยใช้ GCS และ Dataflow
บทนำ
ในโค้ดแล็บนี้ คุณจะได้สร้างไปป์ไลน์ Reverse ETL จาก Databricks ไปยัง Spanner โดยใช้ไฟล์ CSV ที่จัดเก็บไว้ใน Google Cloud Storage โดยปกติแล้ว ไปป์ไลน์ ETL (Extract, Transform, Load) จะย้ายข้อมูลจากฐานข้อมูลการดำเนินงานไปยังคลังข้อมูล เช่น Databricks เพื่อการวิเคราะห์ ไปป์ไลน์ Reverse ETL จะทําตรงกันข้าม นั่นคือย้ายข้อมูลที่ดูแลจัดการและประมวลผลแล้วจากคลังข้อมูลกลับไปยังระบบปฏิบัติการ ซึ่งจะช่วยขับเคลื่อนแอปพลิเคชัน ให้บริการฟีเจอร์ที่แสดงต่อผู้ใช้ หรือใช้ในการตัดสินใจแบบเรียลไทม์
เป้าหมายคือการย้ายชุดข้อมูลตัวอย่างจากตาราง Databricks ไปยัง Spanner ซึ่งเป็นฐานข้อมูลเชิงสัมพันธ์ที่กระจายอยู่ทั่วโลกและเหมาะสำหรับแอปพลิเคชันที่มีความพร้อมใช้งานสูง
โดยใช้ Google Cloud Storage (GCS) และ Dataflow เป็นขั้นตอนกลาง รายละเอียดการไหลของข้อมูลและเหตุผลที่อยู่เบื้องหลังสถาปัตยกรรมนี้มีดังนี้
- Databricks ไปยัง Google Cloud Storage (GCS) ในรูปแบบ CSV:
- ขั้นตอนแรกคือการนำข้อมูลออกจาก Databricks ในรูปแบบเปิดที่เป็นสากล การส่งออกเป็น CSV เป็นวิธีที่ใช้กันทั่วไปและตรงไปตรงมาในการสร้างไฟล์ข้อมูลแบบพกพา ระบบจะจัดเตรียมไฟล์เหล่านี้ใน GCS ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ที่ปรับขนาดได้และมีความคงทน
- GCS ไปยัง Spanner (ผ่าน Dataflow):
- เราใช้ Google Dataflow ซึ่งเป็นบริการประมวลผลข้อมูลที่มีการจัดการเต็มรูปแบบแทนการเขียนสคริปต์ที่กำหนดเองเพื่ออ่านจาก GCS และเขียนไปยัง Spanner Dataflow มีเทมเพลตที่สร้างไว้ล่วงหน้าสำหรับงานประเภทนี้โดยเฉพาะ การใช้เทมเพลต "ข้อความ GCS ไปยัง Cloud Spanner" ช่วยให้สามารถนำเข้าข้อมูลแบบคู่ขนานที่มีปริมาณงานสูงได้โดยไม่ต้องเขียนโค้ดการประมวลผลข้อมูล ซึ่งช่วยประหยัดเวลาในการพัฒนาได้อย่างมาก
สิ่งที่คุณจะได้เรียนรู้
- วิธีโหลดข้อมูลลงใน Databricks
- วิธีสร้างที่เก็บข้อมูล GCS
- วิธีส่งออกตาราง Databricks ไปยัง GCS ในรูปแบบ CSV
- วิธีตั้งค่าอินสแตนซ์ Spanner
- วิธีโหลดตาราง CSV ไปยัง Spanner ด้วย Dataflow
2. การตั้งค่า ข้อกำหนด และข้อจำกัด
ข้อกำหนดเบื้องต้น
- บัญชี Databricks ที่มีสิทธิ์สร้างคลัสเตอร์และติดตั้งไลบรารี บัญชีทดลองใช้ฟรีไม่เพียงพอสำหรับแล็บนี้
- บัญชี Google Cloud ที่เปิดใช้ Spanner, Cloud Storage และ Dataflow API
- สิทธิ์เข้าถึง Google Cloud Console ผ่านเว็บเบราว์เซอร์
- เทอร์มินัลที่ติดตั้ง Google Cloud CLI
- หากองค์กร Google Cloud มี
iam.allowedPolicyMemberDomainsนโยบายที่เปิดใช้ ผู้ดูแลระบบอาจต้องให้ข้อยกเว้นเพื่ออนุญาตบัญชีบริการจากโดเมนภายนอก ซึ่งจะอธิบายในขั้นตอนถัดไป (หากมี)
สิทธิ์ IAM ของ Google Cloud Platform
บัญชี Google จะต้องมีสิทธิ์ต่อไปนี้เพื่อดำเนินการทุกขั้นตอนในโค้ดแล็บนี้
บัญชีบริการ | ||
| อนุญาตให้สร้างบัญชีบริการ | |
Spanner | ||
| อนุญาตให้สร้างอินสแตนซ์ Spanner ใหม่ | |
| อนุญาตให้เรียกใช้คำสั่ง DDL เพื่อสร้าง | |
| อนุญาตให้เรียกใช้คำสั่ง DDL เพื่อสร้างตารางในฐานข้อมูล | |
Google Cloud Storage | ||
| อนุญาตให้สร้างที่เก็บข้อมูล GCS ใหม่เพื่อจัดเก็บไฟล์ Parquet ที่ส่งออก | |
| อนุญาตให้เขียนไฟล์ Parquet ที่ส่งออกไปยังที่เก็บข้อมูล GCS | |
| อนุญาตให้ BigQuery อ่านไฟล์ Parquet จากที่เก็บข้อมูล GCS | |
| อนุญาตให้ BigQuery แสดงรายการไฟล์ Parquet ในที่เก็บข้อมูล GCS | |
Dataflow | ||
| อนุญาตให้เคลมรายการงานจาก Dataflow | |
| อนุญาตให้ผู้ปฏิบัติงาน Dataflow ส่งข้อความกลับไปยังบริการ Dataflow | |
| อนุญาตให้ Worker ของ Dataflow เขียนรายการบันทึกลงใน Google Cloud Logging | |
คุณสามารถใช้บทบาทที่กำหนดไว้ล่วงหน้าซึ่งมีสิทธิ์เหล่านี้เพื่อความสะดวก
|
|
|
|
|
|
|
|
ข้อจำกัด
คุณควรทราบถึงความแตกต่างของประเภทข้อมูลเมื่อย้ายข้อมูลระหว่างระบบ
- Databricks เป็น CSV: เมื่อส่งออก ระบบจะแปลงประเภทข้อมูล Databricks เป็นการแสดงข้อความมาตรฐาน
- CSV ไปยัง Spanner: เมื่อนำเข้า คุณต้องตรวจสอบว่าประเภทข้อมูล Spanner เป้าหมายเข้ากันได้กับการแสดงสตริงในไฟล์ CSV ห้องทดลองนี้จะแนะนำการแมปประเภทที่ใช้กันโดยทั่วไป
ตั้งค่าพร็อพเพอร์ตี้ที่นำมาใช้ซ้ำได้
คุณจะต้องใช้ค่าบางค่าซ้ำๆ ตลอดแล็บนี้ เราจะตั้งค่าเหล่านี้เป็นตัวแปร Shell เพื่อใช้ในภายหลังเพื่อให้ง่ายขึ้น
- GCP_REGION - ภูมิภาคที่เฉพาะเจาะจงซึ่งทรัพยากร GCP จะอยู่ ดูรายชื่อภูมิภาคได้ที่นี่
- GCP_PROJECT - รหัสโปรเจ็กต์ GCP ที่จะใช้
- GCP_BUCKET_NAME - ชื่อที่เก็บข้อมูล GCS ที่จะสร้างและที่จัดเก็บไฟล์ข้อมูล
export GCP_REGION = <GCP REGION HERE>
export GCP_PROJECT= <GCP PROJECT HERE>
export GCS_BUCKET_NAME = <GCS BUCKET NAME HERE>
export SPANNER_INSTANCE = <SPANNER INSTANCE ID HERE>
export SPANNER_DB = <SPANNER DATABASE ID HERE>
Databricks
สำหรับแล็บนี้ คุณต้องมีบัญชี Databricks ที่โฮสต์ใน GCP เพื่อกำหนดตำแหน่งข้อมูลภายนอกใน GCS
Google Cloud
แล็บนี้ต้องใช้โปรเจ็กต์ Google Cloud
โปรเจ็กต์ Google Cloud
โปรเจ็กต์คือหน่วยพื้นฐานของการจัดระเบียบใน Google Cloud หากผู้ดูแลระบบได้ระบุไว้ให้ใช้ คุณอาจข้ามขั้นตอนนี้ได้
คุณสร้างโปรเจ็กต์ได้โดยใช้ CLI ดังนี้
gcloud projects create $GCP_PROJECT
gcloud config set project $GCP_PROJECT
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการโปรเจ็กต์ได้ที่นี่
ตั้งค่า Spanner
หากต้องการเริ่มใช้ Spanner คุณต้องจัดสรรอินสแตนซ์และฐานข้อมูล ดูรายละเอียดเกี่ยวกับการกำหนดค่าและการสร้างอินสแตนซ์ Spanner ได้ที่นี่
สร้างอินสแตนซ์
gcloud spanner instances create $SPANNER_INSTANCE \
--config=regional-$GCP_REGION \
--description="Codelabs Snowflake RETL" \
--processing-units=100 \
--edition=ENTERPRISE
สร้างฐานข้อมูล
gcloud spanner databases create $SPANNER_DB \
--instance=$SPANNER_INSTANCE
3. สร้างที่เก็บข้อมูล Google Cloud Storage
ระบบจะใช้ Google Cloud Storage (GCS) เพื่อจัดเก็บไฟล์ข้อมูล CSV ที่สร้างโดย Snowflake ชั่วคราวก่อนที่จะนำเข้าสู่ Spanner
สร้างที่เก็บข้อมูล
ใช้คำสั่งต่อไปนี้เพื่อสร้างที่เก็บข้อมูลในภูมิภาคที่เฉพาะเจาะจง
gcloud storage buckets create gs://$GCS_BUCKET_NAME --location=$GCP_REGION
ยืนยันการสร้างที่เก็บข้อมูล
เมื่อคำสั่งทำงานสำเร็จแล้ว ให้ตรวจสอบผลลัพธ์โดยแสดงรายการที่เก็บข้อมูลทั้งหมด ถังใหม่ควรปรากฏในรายการผลลัพธ์ โดยปกติแล้วการอ้างอิงที่เก็บข้อมูลจะแสดงพร้อมคำนำหน้า gs:// ที่ด้านหน้าชื่อที่เก็บข้อมูล
gcloud storage ls | grep gs://$GCS_BUCKET_NAME
ทดสอบสิทธิ์เขียน
ขั้นตอนนี้ช่วยให้มั่นใจได้ว่าสภาพแวดล้อมในเครื่องได้รับการตรวจสอบสิทธิ์อย่างถูกต้องและมีสิทธิ์ที่จำเป็นในการเขียนไฟล์ไปยังที่เก็บข้อมูลที่สร้างขึ้นใหม่
echo "Hello, GCS" | gcloud storage cp - gs://$GCS_BUCKET_NAME/hello.txt
ยืนยันไฟล์ที่อัปโหลด
แสดงรายการออบเจ็กต์ในที่เก็บข้อมูล เส้นทางแบบเต็มของไฟล์ที่เพิ่งอัปโหลดควรปรากฏขึ้น
gcloud storage ls gs://$GCS_BUCKET_NAME
คุณควรเห็นเอาต์พุตต่อไปนี้
gs://$GCS_BUCKET_NAME/hello.txt
หากต้องการดูเนื้อหาของออบเจ็กต์ในที่เก็บข้อมูล คุณสามารถใช้ gcloud storage cat ได้
gcloud storage cat gs://$GCS_BUCKET_NAME/hello.txt
เนื้อหาของไฟล์ควรแสดงให้เห็นดังนี้
Hello, GCS
ล้างไฟล์ทดสอบ
ตอนนี้ระบบได้ตั้งค่าที่เก็บข้อมูล Cloud Storage แล้ว ตอนนี้คุณลบไฟล์ทดสอบชั่วคราวได้แล้ว
gcloud storage rm gs://$GCS_BUCKET_NAME/hello.txt
เอาต์พุตควรยืนยันการลบ
Removing gs://$GCS_BUCKET_NAME/hello.txt... / [1 objects] Operation completed over 1 objects.
4. ส่งออกจาก Databricks ไปยัง GCS
ตอนนี้ระบบจะกำหนดค่าสภาพแวดล้อม Databricks ให้เชื่อมต่อกับ GCS และส่งออกข้อมูลได้อย่างปลอดภัย
สร้างข้อมูลเข้าสู่ระบบ
- คลิกแคตตาล็อกในเมนูด้านซ้าย
- คลิกข้อมูลภายนอกหากมีที่ด้านบนของหน้าแคตตาล็อก หรือคลิกเมนูแบบเลื่อนลงเชื่อมต่อ แล้วคลิกข้อมูลเข้าสู่ระบบ
- เปลี่ยนไปที่แท็บข้อมูลเข้าสู่ระบบหากยังไม่ได้อยู่ในแท็บดังกล่าว
- คลิกสร้างข้อมูลเข้าสู่ระบบ
- เลือก
GCP Service Accountสำหรับ Credential Type - ป้อน
codelabs-retl-credentialsสำหรับชื่อข้อมูลเข้าสู่ระบบ - คลิกสร้าง
- คัดลอกอีเมลบัญชีบริการจากกล่องโต้ตอบ แล้วคลิกเสร็จสิ้น
ตั้งค่าบัญชีบริการนี้เป็นตัวแปรสภาพแวดล้อมในอินสแตนซ์เชลล์เพื่อนำกลับมาใช้ใหม่
export GCP_SERVICE_ACCOUNT=<Your service account>
ให้สิทธิ์ GCS แก่ Databricks
ตอนนี้บัญชีบริการ Snowflake ต้องได้รับสิทธิ์เขียนไปยังที่เก็บข้อมูล GCS
gcloud storage buckets add-iam-policy-binding gs://$GCS_BUCKET_NAME \
--member="serviceAccount:$GCP_SERVICE_ACCOUNT" \
--role="roles/storage.objectAdmin"
gcloud storage buckets add-iam-policy-binding gs://$GCS_BUCKET_NAME \
--member="serviceAccount:$GCP_SERVICE_ACCOUNT" \
--role="roles/storage.legacyBucketReader"
สร้างตำแหน่งภายนอก
- กลับไปที่หน้าข้อมูลเข้าสู่ระบบโดยใช้เส้นทางที่ด้านบนของหน้า
- เปลี่ยนไปที่แท็บตำแหน่งภายนอก
- คลิกสร้างตำแหน่งภายนอก
- ตั้งค่าชื่อสถานที่ภายนอกเป็น
codelabs-retl-gcs - คงประเภทพื้นที่เก็บข้อมูลเป็น
GCP - ตั้งค่าเส้นทางของที่เก็บข้อมูลเป็น URL
- ตั้งค่าข้อมูลเข้าสู่ระบบของพื้นที่เก็บข้อมูลเป็น
codelabs-retl-credentials - คลิกสร้าง
- ในการยืนยัน คลิกสร้าง
สร้างแคตตาล็อกและสคีมา
- คลิกแคตตาล็อกในเมนูด้านซ้าย
- คลิกสร้าง แล้วคลิกสร้างแคตตาล็อก
- ตั้งค่าชื่อแคตตาล็อกเป็น
retl_tpch_project - ตั้งค่าประเภทเป็น
Standard - เลือก
codelabs-retl-gcsเป็นตำแหน่งภายนอก - คลิกสร้าง
- คลิก
retl_tpch_projectจากรายการแคตตาล็อก - คลิกสร้างสคีมา
- ตั้งค่าชื่อสคีมาเป็น
tpch_data - เลือกตำแหน่งพื้นที่เก็บข้อมูลเป็น
codelabs-retl-gcs - คลิกสร้าง
ส่งออกข้อมูลเป็น CSV
ตอนนี้ข้อมูลพร้อมสำหรับการส่งออกแล้ว ระบบจะใช้ชุดข้อมูล TPC-H ตัวอย่างเพื่อกำหนดตารางใหม่ที่จะจัดเก็บภายนอกเป็น CSV
ก่อนอื่น ให้คัดลอกข้อมูลตัวอย่างลงในตารางใหม่ในพื้นที่ทำงาน โดยจะต้องเรียกใช้โค้ด SQL จากการค้นหา
- ในเมนูด้านซ้ายใต้ SQL ให้คลิกคำค้นหา
- คลิกปุ่มสร้างคําค้นหา
- ตั้งค่า Workspace เป็น
retl_tpch_projectข้างปุ่มเรียกใช้
CREATE TABLE retl_tpch_project.tpch_data.regional_sales_csv
USING CSV
LOCATION 'gs://<Your bucket name>/regional_sales_csv'
OPTIONS (
header "false",
delimiter ","
)
AS
SELECT
n.n_name AS nation_name,
c.c_mktsegment AS market_segment,
YEAR(o.o_orderdate) AS order_year,
o.o_orderpriority AS order_priority,
COUNT(o.o_orderkey) AS total_order_count,
ROUND(SUM(o.o_totalprice), 2) AS total_revenue,
COUNT(DISTINCT c.c_custkey) AS unique_customer_count
FROM samples.tpch.orders AS o
INNER JOIN samples.tpch.customer AS c
ON o.o_custkey = c.c_custkey
INNER JOIN samples.tpch.nation AS n
ON c.c_nationkey = n.n_nationkey
GROUP BY 1, 2, 3, 4;
ยืนยันข้อมูลใน GCS
ตรวจสอบที่เก็บข้อมูล GCS เพื่อดูไฟล์ที่ Databricks สร้างขึ้น
gcloud storage ls gs://$GCS_BUCKET_NAME/regional_sales_csv/
คุณควรเห็นไฟล์ .csv อย่างน้อย 1 ไฟล์ พร้อมกับไฟล์ _SUCCESS และไฟล์บันทึก
5. โหลดข้อมูลลงใน Spanner ด้วย Dataflow
ระบบจะใช้เทมเพลต Dataflow ที่ Google จัดเตรียมไว้เพื่อนําเข้าข้อมูล CSV จาก GCS ไปยัง Spanner
สร้างตาราง Spanner
ก่อนอื่น ให้สร้างตารางปลายทางใน Spanner สคีมาต้องเข้ากันได้กับข้อมูลในไฟล์ CSV
gcloud spanner databases ddl update $SPANNER_DB \
--instance=$SPANNER_INSTANCE \
--ddl="$(cat <<EOF
CREATE TABLE regional_sales (
nation_name STRING(MAX),
market_segment STRING(MAX),
order_year INT64,
order_priority STRING(MAX),
total_order_count INT64,
total_revenue NUMERIC,
unique_customer_count INT64
) PRIMARY KEY (nation_name, market_segment, order_year, order_priority);
EOF
)"
สร้างไฟล์ Manifest ของ Dataflow
เทมเพลต Dataflow ต้องมีไฟล์ "manifest" นี่คือไฟล์ JSON ที่บอกเทมเพลตว่าไฟล์ข้อมูลต้นทางอยู่ที่ใดและควรโหลดไฟล์ลงในตาราง Spanner ใด
กำหนดและอัปโหลด regional_sales_manifest.json ใหม่ไปยังที่เก็บข้อมูล GCS โดยทำดังนี้
cat <<EOF | gcloud storage cp - gs://$GCS_BUCKET_NAME/regional_sales_manifest.json
{
"tables": [
{
"table_name": "regional_sales",
"file_patterns": [
"gs://$GCS_BUCKET_NAME/regional_sales_csv/*.csv"
]
}
]
}
EOF
เปิดใช้ Dataflow API
คุณต้องเปิดใช้ Dataflow ก่อนจึงจะใช้งานได้ โดยใช้
gcloud services enable dataflow.googleapis.com --project=$GCP_PROJECT
สร้างและเรียกใช้งาน Dataflow
ตอนนี้งานนำเข้าพร้อมทำงานแล้ว คำสั่งนี้จะเปิดใช้งานงาน Dataflow โดยใช้เทมเพลต GCS_Text_to_Cloud_Spanner
คำสั่งนี้ยาวและมีพารามิเตอร์หลายรายการ รายละเอียดมีดังนี้
--gcs-location: เส้นทางไปยังเทมเพลตที่สร้างไว้ล่วงหน้าใน GCS--region: ภูมิภาคที่จะเรียกใช้งาน Dataflow--parameters: รายการคู่คีย์-ค่าที่เฉพาะเจาะจงกับเทมเพลตinstanceId,databaseId: อินสแตนซ์และฐานข้อมูล Spanner เป้าหมายimportManifest: เส้นทาง GCS ไปยังไฟล์ Manifest ที่สร้างขึ้น
gcloud dataflow jobs run spanner-import-from-gcs \
--gcs-location=gs://dataflow-templates/latest/GCS_Text_to_Cloud_Spanner \
--region=$GCP_REGION \
--staging-location=gs://$GCS_BUCKET_NAME/staging \
--parameters \
instanceId=$SPANNER_INSTANCE,\
databaseId=$SPANNER_DB,\
importManifest=gs://$GCS_BUCKET_NAME/regional_sales_manifest.json,escape='\'
คุณตรวจสอบสถานะของงาน Dataflow ได้ด้วยคำสั่งต่อไปนี้
gcloud dataflow jobs list \
--filter="name:spanner-import-from-gcs" \
--region="$GCP_REGION" \
--sort-by="~creationTime" \
--limit=1
งานนี้จะใช้เวลาประมาณ 5 นาที
ยืนยันข้อมูลใน Spanner
เมื่องาน Dataflow สำเร็จแล้ว ให้ตรวจสอบว่าได้โหลดข้อมูลลงใน Spanner แล้ว
ก่อนอื่น ให้ตรวจสอบจำนวนแถว ซึ่งควรเป็น 4375
gcloud spanner databases execute-sql $SPANNER_DB \
--instance=$SPANNER_INSTANCE \
--sql='SELECT COUNT(*) FROM regional_sales;'
จากนั้น ให้ค้นหา 2-3 แถวเพื่อตรวจสอบข้อมูล
gcloud spanner databases execute-sql $SPANNER_DB \
--instance=$SPANNER_INSTANCE \
--sql='SELECT * FROM regional_sales LIMIT 5'
คุณควรเห็นข้อมูลที่นำเข้าจากตาราง Databricks
6. การจัดระเบียบ
ล้างข้อมูล Spanner
ลบฐานข้อมูลและอินสแตนซ์ Spanner
gcloud spanner instances delete $SPANNER_INSTANCE
ล้างข้อมูลใน GCS
ลบที่เก็บข้อมูล GCS ที่สร้างขึ้นเพื่อโฮสต์ข้อมูล
gcloud storage rm --recursive gs://$GCS_BUCKET_NAME
ล้างข้อมูล Databricks
ลบแคตตาล็อก/สคีมา/ตาราง
- ลงชื่อเข้าใช้ในอินสแตนซ์ Databricks
- คลิก
จากเมนูด้านซ้าย - เลือก
retl_tpch_projectที่สร้างไว้ก่อนหน้านี้จากรายการแคตตาล็อก

- ในรายการสคีมา ให้เลือก
tpch_dataที่สร้างขึ้น - เลือก
regional_sales_csvที่สร้างไว้ก่อนหน้านี้จากรายการตาราง - ขยายตัวเลือกตารางโดยคลิก
แล้วเลือกลบ - คลิกลบในกล่องโต้ตอบการยืนยันเพื่อลบตาราง
- เมื่อลบตารางแล้ว ระบบจะนำคุณกลับไปที่หน้าสคีมา
- ขยายตัวเลือกสคีมาโดยคลิก
แล้วเลือกลบ - คลิกลบในกล่องโต้ตอบการยืนยันเพื่อลบสคีมา
- เมื่อลบสคีมาแล้ว ระบบจะนำคุณกลับไปที่หน้าแคตตาล็อก
- ทำตามขั้นตอนที่ 4-11 อีกครั้งเพื่อลบสคีมา
defaultหากมี - จากหน้าแคตตาล็อก ให้ขยายตัวเลือกแคตตาล็อกโดยคลิก
แล้วเลือกลบ - คลิกลบในกล่องโต้ตอบการยืนยันเพื่อลบแคตตาล็อก
ลบตำแหน่ง / ข้อมูลเข้าสู่ระบบของข้อมูลภายนอก
- จากหน้าจอแคตตาล็อก ให้คลิก

- หากไม่เห็นตัวเลือก
External Dataคุณอาจเห็นExternal Locationแสดงอยู่ในเมนูแบบเลื่อนลงConnectแทน - คลิก
retl-gcs-locationตำแหน่งข้อมูลภายนอกที่สร้างไว้ก่อนหน้านี้ - จากหน้าสถานที่ภายนอก ให้ขยายตัวเลือกสถานที่ตั้งโดยคลิก
แล้วเลือก Delete - คลิกลบในกล่องโต้ตอบการยืนยันเพื่อลบตำแหน่งภายนอก
- คลิก

- คลิก
retl-gcs-credentialที่สร้างไว้ก่อนหน้านี้ - จากหน้าข้อมูลเข้าสู่ระบบ ให้ขยายตัวเลือกข้อมูลเข้าสู่ระบบโดยคลิก
แล้วเลือก Delete - คลิกลบในกล่องโต้ตอบการยืนยันเพื่อลบข้อมูลเข้าสู่ระบบ
7. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึงไปแล้ว
- วิธีโหลดข้อมูลลงใน Databricks
- วิธีสร้างที่เก็บข้อมูล GCS
- วิธีส่งออกตาราง Databricks ไปยัง GCS ในรูปแบบ CSV
- วิธีตั้งค่าอินสแตนซ์ Spanner
- วิธีโหลดตาราง CSV ไปยัง Spanner ด้วย Dataflow