1. สร้างไปป์ไลน์ Reverse ETL จาก Snowflake ไปยัง Spanner โดยใช้ Google Cloud Storage และ Dataflow
บทนำ
ใน Lab นี้ เราจะสร้างไปป์ไลน์ Reverse ETL โดยปกติแล้ว ไปป์ไลน์ ETL (Extract, Transform, Load) จะย้ายข้อมูลจากฐานข้อมูลการดำเนินงานไปยังคลังข้อมูล เช่น Snowflake เพื่อการวิเคราะห์ ไปป์ไลน์ Reverse ETL จะทําตรงกันข้าม นั่นคือย้ายข้อมูลที่ดูแลจัดการและประมวลผลแล้วจากคลังข้อมูลกลับไปยังระบบปฏิบัติการ ซึ่งจะช่วยขับเคลื่อนแอปพลิเคชัน ให้บริการฟีเจอร์ที่แสดงต่อผู้ใช้ หรือใช้ในการตัดสินใจแบบเรียลไทม์
เป้าหมายคือการย้ายชุดข้อมูลตัวอย่างจากตาราง Snowflake ไปยัง Spanner ซึ่งเป็นฐานข้อมูลเชิงสัมพันธ์ที่กระจายอยู่ทั่วโลกและเหมาะสำหรับแอปพลิเคชันที่มีความพร้อมใช้งานสูง
โดยใช้ Google Cloud Storage (GCS) และ Dataflow เป็นขั้นตอนกลาง ต่อไปนี้คือรายละเอียดของโฟลว์และเหตุผลที่อยู่เบื้องหลังสถาปัตยกรรมนี้
- Snowflake ไปยัง Google Cloud Storage (GCS) ในรูปแบบ CSV:
- ขั้นตอนแรกคือการนำข้อมูลออกจาก Snowflake ในรูปแบบเปิดที่เป็นสากล การส่งออกเป็น CSV เป็นวิธีที่ใช้กันทั่วไปและตรงไปตรงมาในการสร้างไฟล์ข้อมูลแบบพกพา เราจะจัดเตรียมไฟล์เหล่านี้ใน GCS ซึ่งเป็นโซลูชันพื้นที่เก็บข้อมูลออบเจ็กต์ที่ปรับขนาดได้และมีความทนทาน
- GCS ไปยัง Spanner (ผ่าน Dataflow):
- เราใช้ Google Dataflow ซึ่งเป็นบริการประมวลผลข้อมูลที่มีการจัดการเต็มรูปแบบแทนการเขียนสคริปต์ที่กำหนดเองเพื่ออ่านจาก GCS และเขียนไปยัง Spanner Dataflow มีเทมเพลตที่สร้างไว้ล่วงหน้าสำหรับงานประเภทนี้โดยเฉพาะ การใช้เทมเพลต "ข้อความ GCS ไปยัง Cloud Spanner" ช่วยให้สามารถนำเข้าข้อมูลแบบคู่ขนานที่มีปริมาณงานสูงได้โดยไม่ต้องเขียนโค้ดการประมวลผลข้อมูล ซึ่งช่วยประหยัดเวลาในการพัฒนาได้อย่างมาก
สิ่งที่คุณจะได้เรียนรู้
- วิธีโหลดข้อมูลลงใน Snowflake
- วิธีสร้างที่เก็บข้อมูล GCS
- วิธีส่งออกตาราง Snowflake ไปยัง GCS ในรูปแบบ CSV
- วิธีตั้งค่าอินสแตนซ์ Spanner
- วิธีโหลดตาราง CSV ไปยัง Spanner ด้วย Dataflow
2. การตั้งค่า ข้อกำหนด และข้อจำกัด
ข้อกำหนดเบื้องต้น
- บัญชี Snowflake
- บัญชี 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 | |
คุณสามารถใช้บทบาทที่กำหนดไว้ล่วงหน้าซึ่งมีสิทธิ์เหล่านี้เพื่อความสะดวก
|
|
|
|
|
|
|
|
ข้อจำกัด
โปรดทราบถึงความแตกต่างของประเภทข้อมูลเมื่อย้ายข้อมูลระหว่างระบบ
- Snowflake เป็น CSV: เมื่อส่งออก ระบบจะแปลงประเภทข้อมูล Snowflake เป็นการแสดงข้อความมาตรฐาน
- CSV ไปยัง Spanner: เมื่อนำเข้า คุณต้องตรวจสอบว่าประเภทข้อมูล Spanner เป้าหมายเข้ากันได้กับการแสดงสตริงในไฟล์ CSV ห้องทดลองนี้จะแนะนำการแมปประเภทที่ใช้กันโดยทั่วไป
ตั้งค่าพร็อพเพอร์ตี้ที่นำมาใช้ซ้ำได้
คุณจะต้องใช้ค่าบางค่าซ้ำๆ ตลอดแล็บนี้ เราจะตั้งค่าเหล่านี้เป็นตัวแปร Shell เพื่อใช้ในภายหลังเพื่อให้ง่ายขึ้น
- GCP_REGION - ภูมิภาคที่เฉพาะเจาะจงซึ่งทรัพยากร GCP จะอยู่ ดูรายชื่อภูมิภาคได้ที่นี่
- GCP_PROJECT - รหัสโปรเจ็กต์ GCP ที่จะใช้
- GCP_BUCKET_NAME - ชื่อที่เก็บข้อมูล GCS ที่จะสร้างและที่จัดเก็บไฟล์ข้อมูล
- SPANNER_INSTANCE - ชื่อที่จะกำหนดให้กับอินสแตนซ์ Spanner
- SPANNER_DB - ชื่อที่จะกำหนดให้กับฐานข้อมูลภายในอินสแตนซ์ Spanner
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>
Google Cloud
แล็บนี้ต้องใช้โปรเจ็กต์ Google Cloud
โปรเจ็กต์ Google Cloud
โปรเจ็กต์คือหน่วยพื้นฐานของการจัดระเบียบใน Google Cloud หากผู้ดูแลระบบได้ระบุไว้ให้ใช้ คุณอาจข้ามขั้นตอนนี้ได้
คุณสร้างโปรเจ็กต์ได้โดยใช้ CLI ดังนี้
gcloud projects create $GCP_PROJECT
gcloud config set project $GCP_PROJECT
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการโปรเจ็กต์ได้ที่นี่
3. ตั้งค่า 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
4. สร้างที่เก็บข้อมูล Google Cloud Storage
ระบบจะใช้ Google Cloud Storage (GCS) เพื่อจัดเก็บไฟล์ข้อมูล CSV ที่สร้างโดย Snowflake ชั่วคราวก่อนที่จะนำเข้าสู่ Spanner
สร้างที่เก็บข้อมูล
ใช้คำสั่งต่อไปนี้เพื่อสร้างที่เก็บข้อมูลในภูมิภาคที่เฉพาะเจาะจง (เช่น us-central1)
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.
5. ส่งออกจาก Snowflake ไปยัง GCS
สำหรับแล็บนี้ เราจะใช้ชุดข้อมูล TPC-H ซึ่งเป็นเกณฑ์มาตรฐานระดับอุตสาหกรรมสำหรับระบบสนับสนุนการตัดสินใจ ชุดข้อมูลนี้พร้อมใช้งานโดยค่าเริ่มต้นในบัญชี Snowflake ทั้งหมด
เตรียมข้อมูลใน Snowflake
เข้าสู่ระบบบัญชี Snowflake แล้วสร้างเวิร์กชีตใหม่
คุณไม่สามารถส่งออกข้อมูล TPC-H ตัวอย่างที่ Snowflake จัดหาให้จากตำแหน่งที่แชร์ได้โดยตรงเนื่องจากสิทธิ์ ก่อนอื่นต้องคัดลอกORDERSตารางไปยังฐานข้อมูลและสคีมาแยกต่างหาก
สร้างฐานข้อมูล
- ในเมนูด้านซ้าย ภายใต้แคตตาล็อก Horizon ให้วางเมาส์เหนือแคตตาล็อก แล้วคลิกDatabase Explorer
- เมื่ออยู่ในหน้าฐานข้อมูล ให้คลิกปุ่ม + ฐานข้อมูลที่ด้านขวาบน
- ตั้งชื่อฐานข้อมูลใหม่
codelabs_retl_db
สร้างเวิร์กชีต
หากต้องการเรียกใช้คำสั่ง SQL กับฐานข้อมูล คุณจะต้องใช้เวิร์กชีต
วิธีสร้างเวิร์กชีต
- ในเมนูด้านซ้าย ภายใต้ทำงานกับข้อมูล ให้วางเมาส์เหนือโปรเจ็กต์ แล้วคลิกพื้นที่ทำงาน
- ในแถบด้านข้างพื้นที่ทำงานของฉัน ให้คลิกปุ่ม + เพิ่มใหม่ แล้วเลือกไฟล์ SQL
USE DATABASE codelabs_retl_db;
CREATE SCHEMA codelabs_retl_export;
CREATE TABLE codelabs_retl_export.regional_sales_csv 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 SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.orders AS o
INNER JOIN SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.customer AS c
ON o.o_custkey = c.c_custkey
INNER JOIN SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.nation AS n
ON c.c_nationkey = n.n_nationkey
GROUP BY
n.n_name,
c.c_mktsegment,
YEAR(o.o_orderdate),
o.o_orderpriority;
SELECT COUNT(*) FROM regional_sales_csv;
เอาต์พุตควรระบุว่ามีการคัดลอก 4375 แถว
กำหนดค่า Snowflake เพื่อเข้าถึง GCS
หากต้องการอนุญาตให้ Snowflake เขียนข้อมูลไปยังที่เก็บข้อมูล GCS คุณต้องสร้างการผสานรวมพื้นที่เก็บข้อมูลและพื้นที่เก็บข้อมูลชั่วคราว
- การผสานรวมพื้นที่เก็บข้อมูล: ออบเจ็กต์ Snowflake ที่จัดเก็บบัญชีบริการที่สร้างขึ้นและข้อมูลการตรวจสอบสิทธิ์สำหรับพื้นที่เก็บข้อมูลระบบคลาวด์ภายนอก
- สเตจ: ออบเจ็กต์ที่มีชื่อซึ่งอ้างอิงถึงที่เก็บข้อมูลและเส้นทางที่เฉพาะเจาะจง โดยใช้การผสานรวมพื้นที่เก็บข้อมูลเพื่อจัดการการตรวจสอบสิทธิ์ ซึ่งเป็นตำแหน่งที่มีชื่อที่สะดวกสำหรับการดำเนินการโหลดและยกเลิกการโหลดข้อมูล
ก่อนอื่น ให้สร้างการผสานรวมที่เก็บข้อมูล
CREATE OR REPLACE STORAGE INTEGRATION gcs_int
TYPE = EXTERNAL_STAGE
STORAGE_PROVIDER = 'GCS'
ENABLED = TRUE
-- Grant Snowflake permission to write to a specific path in your bucket.
STORAGE_ALLOWED_LOCATIONS = ('gcs://<Your bucket name>/sample_orders');
จากนั้นอธิบายการผสานรวมเพื่อรับบัญชีบริการที่ Snowflake สร้างขึ้น
DESC STORAGE INTEGRATION gcs_int;
ในผลลัพธ์ ให้คัดลอกค่าสำหรับ STORAGE_GCP_SERVICE_ACCOUNT โดยจะมีลักษณะคล้ายอีเมล
จัดเก็บบัญชีบริการนี้ไว้ในตัวแปรสภาพแวดล้อมในอินสแตนซ์เชลล์เพื่อนำกลับมาใช้ใหม่ในภายหลัง
export GCP_SERVICE_ACCOUNT=<Your service account>
ให้สิทธิ์ GCS แก่ Snowflake
ตอนนี้บัญชีบริการ 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"
สร้างสเตจและส่งออกข้อมูล
เมื่อตั้งค่าสิทธิ์แล้ว ให้กลับไปที่เวิร์กชีต Snowflake สร้าง Stage ที่ใช้การผสานรวม แล้วใช้คำสั่ง COPY INTO เพื่อส่งออกข้อมูลตาราง SAMPLE_ORDERS ไปยัง Stage นั้น
CREATE OR REPLACE STAGE retl_gcs_stage
URL = 'gcs://<Your bucket name>/regional_sales_csv'
STORAGE_INTEGRATION = gcs_int
-- Define the output file format
FILE_FORMAT = (TYPE = 'CSV');
COPY INTO @retl_gcs_stage/regional_sales_csv
FROM (SELECT * FROM codelabs_retl_export.regional_sales_csv)
FILE_FORMAT = (TYPE = CSV, COMPRESSION = NONE);
ในแผงผลลัพธ์ rows_unloaded ควรแสดงค่าเป็น 1500000
ยืนยันข้อมูลใน GCS
ตรวจสอบที่เก็บข้อมูล GCS เพื่อดูไฟล์ที่ Snowflake สร้างขึ้น ซึ่งเป็นการยืนยันว่าการส่งออกสำเร็จ
gcloud storage ls gs://$GCS_BUCKET_NAME/regional_sales_csv/
คุณควรเห็นไฟล์ CSV ที่มีหมายเลขอย่างน้อย 1 ไฟล์
gs://your-bucket-name/regional_sales_csv/regional_sales_csv_0_0_0.csv ...
6. โหลดข้อมูลลงใน Spanner ด้วย Dataflow
เมื่อข้อมูลอยู่ใน GCS แล้ว ระบบจะใช้ Dataflow เพื่อนำเข้าไปยัง Spanner Dataflow คือบริการที่มีการจัดการครบวงจรของ Google Cloud สำหรับการประมวลผลข้อมูลแบบสตรีมและแบบกลุ่ม ระบบจะใช้เทมเพลต Google ที่สร้างไว้ล่วงหน้า ซึ่งออกแบบมาโดยเฉพาะสำหรับการนำเข้าไฟล์ข้อความจาก 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 | |
| ภูมิภาคที่งาน Dataflow จะทำงาน | |
| ||
| อินสแตนซ์และฐานข้อมูล Spanner เป้าหมาย | |
| เส้นทาง 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'
คุณควรเห็นข้อมูลที่นำเข้าจากตาราง Snowflake
7. การจัดระเบียบ
ล้างข้อมูล Spanner
ลบฐานข้อมูลและอินสแตนซ์ Spanner
gcloud spanner instances delete $SPANNER_INSTANCE
ล้างข้อมูลใน GCS
ลบที่เก็บข้อมูล GCS ที่สร้างขึ้นเพื่อโฮสต์ข้อมูล
gcloud storage rm --recursive gs://$GCS_BUCKET_NAME
ล้างข้อมูลใน Snowflake
ลดฐานข้อมูล
- ในเมนูด้านซ้าย ภายใต้แคตตาล็อก Horizon ให้วางเมาส์เหนือแคตตาล็อก แล้วคลิกDatabase Explorer
- คลิก ... ทางด้านขวาของฐานข้อมูล
CODELABS_RETL_DBเพื่อขยายตัวเลือก แล้วเลือกทิ้ง - ในกล่องโต้ตอบการยืนยันที่ปรากฏขึ้น ให้เลือกดรอปฐานข้อมูล
ลบเวิร์กบุ๊ก
- ในเมนูด้านซ้าย ภายใต้ทำงานกับข้อมูล ให้วางเมาส์เหนือโปรเจ็กต์ แล้วคลิกพื้นที่ทำงาน
- ในแถบด้านข้างพื้นที่ทำงานของฉัน ให้วางเมาส์เหนือไฟล์พื้นที่ทำงานต่างๆ ที่คุณใช้สำหรับแล็บนี้เพื่อแสดงตัวเลือกเพิ่มเติม ... แล้วคลิก
- เลือกลบ แล้วเลือกลบอีกครั้งในกล่องโต้ตอบการยืนยันที่ปรากฏขึ้น
- ทำเช่นนี้กับไฟล์พื้นที่ทำงาน SQL ทั้งหมดที่คุณสร้างขึ้นสำหรับแล็บนี้
8. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึงไปแล้ว
- วิธีโหลดข้อมูลลงใน Snowflake
- วิธีสร้างที่เก็บข้อมูล GCS
- วิธีส่งออกตาราง Snowflake ไปยัง GCS ในรูปแบบ CSV
- วิธีตั้งค่าอินสแตนซ์ Spanner
- วิธีโหลดตาราง CSV ไปยัง Spanner ด้วย Dataflow