# \#bigquery

**URL:** https://discuss.dataengineercafe.io/tag/bigquery/45.md

[Latest](https://discuss.dataengineercafe.io/latest.md) · [Categories](https://discuss.dataengineercafe.io/categories.md) · [Tags](https://discuss.dataengineercafe.io/tags.md)

---

## [Learn BigQuery! เขียน SQL ในการจัดการ Semi-Structured Nested Data](https://discuss.dataengineercafe.io/t/learn-bigquery-sql-semi-structured-nested-data/569)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [April 18, 2023, 7:05am UTC](https://discuss.dataengineercafe.io/t/learn-bigquery-sql-semi-structured-nested-data/569 "2023-04-18T07:05:29Z")

</div>

ใครที่ใช้งาน BigQuery อยู่ น่าจะชอบสิ่งนี้ เค้าสอนพวก Structs กับ Arrays แล้วก็วิธี Flatten ครับ อ่านแล้วเข้าใจง่ายดี แนะนำ ๆ ส่วนด้านล่างนี้เป็น Repo ต้นทาง

---

## [มาทำความรู้จักกับ Partitions และ Clusters ใน BigQuery กันดีกว่า](https://discuss.dataengineercafe.io/t/partitions-clusters-bigquery/382)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [August 24, 2022, 9:38am UTC](https://discuss.dataengineercafe.io/t/partitions-clusters-bigquery/382 "2022-08-24T09:38:03Z")

</div>

การทำ partitioning กับ clustering เป็นเทคนิคที่จะช่วย optimize query ของเราให้รันเร็วขึ้น แล้วยังทำให้เราประหยัดเพิ่มมากขึ้นอีกด้วยนะ เพราะว่าเราใช้ resource ที่น้อยลง เราสามารถใช้เทคนิคอย่างใดอย่างหนึ่ง หรือจะใช้ทั้ง 2…

---

## [การ Overwrite Data เฉพาะ Partition ใน BigQuery](https://discuss.dataengineercafe.io/t/overwrite-data-partition-bigquery/564)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [April 16, 2023, 1:20am UTC](https://discuss.dataengineercafe.io/t/overwrite-data-partition-bigquery/564 "2023-04-16T01:20:58Z")

</div>

ใน Data Warehouse ของเราโดยปกติเราก็จะโหลดข้อมูลเข้าไปเก็บเป็น Partition ไว้ เพื่อที่ตอนที่เรา Query ข้อมูลจะได้ไม่ต้องดึงข้อมูลทั้งหมดออกมา จะถึงแค่เฉพาะ Partition ที่เราต้องการเท่านั้น ทีนี้ตอนที่เราอยากจะโหลดข้อมูลเข…

---

## [Airflow Bigquery upsert](https://discuss.dataengineercafe.io/t/airflow-bigquery-upsert/549)

<div class="topic-metadata">

**Author:** [@0xKoios](https://discuss.dataengineercafe.io/u/0xKoios)\
**Replies:** 2\
**Last updated:** [March 29, 2023, 7:30am UTC](https://discuss.dataengineercafe.io/t/airflow-bigquery-upsert/549 "2023-03-29T07:30:30Z")

</div>

มีใครเคยใช้ BigQueryUpsertTableOperator (Link) ไหมครับ ผมพยายามจะใช้กับ Pipeline เพื่อทำการ Upsert จาก Table A ไป Table B แต่หาตัวอย่างการใช้งานไม่เจอ ลองทำตามใน Doc แล้วแต่ก็ยังไม่สำเร็จครับ

---

## [BigQuery มี Data Lineage แล้ว!](https://discuss.dataengineercafe.io/t/bigquery-data-lineage/504)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 1\
**Last updated:** [February 12, 2023, 8:00am UTC](https://discuss.dataengineercafe.io/t/bigquery-data-lineage/504 "2023-02-12T08:00:20Z")

</div>

ณ วันนี้ feature นี้ (เป็น feature หนึ่งใน Dataplex) อยู่ในช่วง preview เรียบร้อยแล้ว สามารถลองเล่นกันได้นะ หน้าตาเป็นประมาณนี้เลย โค้ด SQL ที่เราต้องเขียนก็จะเป็นแนว data transformation นะ ใช้ CREATE TABLE AS SEL…

---

## [สรุปบทความ Data Quality Automation at Twitter ของ Eduardo Ohe กับ Bi Wu](https://discuss.dataengineercafe.io/t/data-quality-automation-at-twitter-eduardo-ohe-bi-wu/413)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 2\
**Last updated:** [December 21, 2022, 2:49am UTC](https://discuss.dataengineercafe.io/t/data-quality-automation-at-twitter-eduardo-ohe-bi-wu/413 "2022-12-21T02:49:59Z")

</div>

ได้อ่านบทความ Data Quality Automation at Twitter ซึ่งเป็นบทความไม่ยาวมาก และมีความ simple ในการออกแบบ ดูน่าสนใจ เรื่อง data quality นี่เป็นปัญหาที่ทุก ๆ องค์กรจะต้องเจอ ที่ Twitter ก็เช่นกัน แล้วทีนี้เราจะทำอย่างไรให้เร…

---

## [สรุปบทความ Optimize your bigquery performance ของ Sagar Tiwari](https://discuss.dataengineercafe.io/t/optimize-your-bigquery-performance-sagar-tiwari/423)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 1\
**Last updated:** [October 4, 2022, 6:54am UTC](https://discuss.dataengineercafe.io/t/optimize-your-bigquery-performance-sagar-tiwari/423 "2022-10-04T06:54:47Z")

</div>

บทความนี้เขียนวิธี optimize BigQuery’s performance ไปส่องแล้ว เป็นทิปที่เข้าใจง่ายดี เลยขอมาสรุปให้อ่านกัน :wink: เค้าเขียนไว้ 5 ข้อตามนี้ ถ้าข้อมูลใหญ่มาก ๆ ให้ใช้ top แทน limit เช่น เราจะเลือก 100 แถวแรกมาแสดงผล …

---

## [Google เปิดตัว BigLake รวมพลัง Data Warehouses กับ Lakes เข้าไว้ด้วยกัน](https://discuss.dataengineercafe.io/t/google-biglake-data-warehouses-lakes/180)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 2\
**Last updated:** [September 22, 2022, 4:16pm UTC](https://discuss.dataengineercafe.io/t/google-biglake-data-warehouses-lakes/180 "2022-09-22T16:16:25Z")

</div>

เพิ่งเปิดตัวไปตอนต้นเดือนเลย อย่างโหด! ถ้าใครเคยได้ยินคำว่า lakehouse จาก Databricks มา สิ่งๆ นี้มันมาอยู่บน GCP แล้วครับ :star\_struck: ใช้ชื่อว่า BigLake นั่นเอง BigLake unifies data warehouses and data lakes into a c…

---

## [บทความ dbt at scale on Google Cloud](https://discuss.dataengineercafe.io/t/dbt-at-scale-on-google-cloud/381)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [August 22, 2022, 10:43am UTC](https://discuss.dataengineercafe.io/t/dbt-at-scale-on-google-cloud/381 "2022-08-22T10:43:57Z")

</div>

เป็น 3 parts ที่ดีมาก ๆ ที่เค้าอธิบาย data engineering architecture ซึ่งเป็น approach ที่ Astrafy เค้าวางไว้ ซึ่งมี dbt เป็น backbone เลย :+1: ดูแล้วมีความเป็น modern data stack ที่เค้ามักจะพูดกัน ออกแนว Extract, load, …

---

## [Data Engineer @ NocNoc](https://discuss.dataengineercafe.io/t/data-engineer-nocnoc/372)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [August 12, 2022, 11:51am UTC](https://discuss.dataengineercafe.io/t/data-engineer-nocnoc/372 "2022-08-12T11:51:43Z")

</div>

เห็นที่ NocNoc เค้าเปิดรับ Data Engineer อยู่ เผื่อสนใจกันครับ ลิ้งค์รับสมัคร และรายละเอียดของตำแหน่งก็ตามด้านล่างนี้เลย :point\_down: https://www.careers-page.com/nocnoc/job/6Y4X9R About the job Data Engineer NocNo…

---

## [Google Cloub Pub/Sub ต่อ BigQuery ตรง ๆ ได้แล้ว~](https://discuss.dataengineercafe.io/t/google-cloub-pub-sub-bigquery/364)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 1\
**Last updated:** [August 6, 2022, 9:08am UTC](https://discuss.dataengineercafe.io/t/google-cloub-pub-sub-bigquery/364 "2022-08-06T09:08:39Z")

</div>

เพิ่งเห็นข่าวนี้เลย น่าจะเป็นข่าวดีกับหลาย ๆ คนที่เป็นแฟนคลับ BigQuery (ผมด้วยคนหนึ่ง อิอิ) ก่อนหน้านี้เราต้องเขียน pipeline อย่างเช่น Dataflow เพื่อ ingest ข้อมูลจาก Pub/Sub เข้า BigQuery ซึ่งตั้งแต่วันที่ 29 ก.ค. ที…

---

## [วิธีอ่าน BigQuery table เข้า DuckDB ผ่าน BigQuery Storage Read API](https://discuss.dataengineercafe.io/t/bigquery-table-duckdb-bigquery-storage-read-api/326)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [July 8, 2022, 11:01am UTC](https://discuss.dataengineercafe.io/t/bigquery-table-duckdb-bigquery-storage-read-api/326 "2022-07-08T11:01:56Z")

</div>

วันนี้กำลังนึกถึงวิธีที่จะดึงข้อมูลจาก BigQuery เอามาทำ data tool สักตัวหนึ่ง แล้วบังเอิญเจอสิ่งนี้… รู้สึกว่ามันดีงามมากกกก ซึ่งผมชอบเจ้าเป็ด DuckDB :duck: นี่อยู่แล้วด้วย เขียนโค้ดสั้น ๆ ดึงข้อมูลจาก BigQuery Storag…

---

## [สร้าง Authorized Views ใน BigQuery เพื่อแชร์ข้อมูล ให้กับหน่วยงานอื่นๆ ในองค์กร](https://discuss.dataengineercafe.io/t/authorized-views-bigquery/116)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 1\
**Last updated:** [May 17, 2022, 8:56am UTC](https://discuss.dataengineercafe.io/t/authorized-views-bigquery/116 "2022-05-17T08:56:38Z")

</div>

เวลาที่เราอยากจะแชร์ข้อมูลให้กับหน่วยงานอื่นๆ ใน BigQuery เราสามารถทำผ่านสิ่งที่เรียกว่า Authorized Views ได้ มีขั้นตอนประมาณนี้ สร้าง Dataset สำหรับหน่วยงานที่เราอยากจะแชร์ข้อมูลให้ สร้าง View ขึ้นมา อาจจะเอาฟิลด์บ…

---

## [SQL หาระยะเวลาที่แตกต่างกันระหว่าง 2 records ใน BigQuery](https://discuss.dataengineercafe.io/t/sql-2-records-bigquery/104)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [January 31, 2022, 4:13am UTC](https://discuss.dataengineercafe.io/t/sql-2-records-bigquery/104 "2022-01-31T04:13:13Z")

</div>

ใน BigQuery เราสามารถใช้ฟังก์ชั่น LAG ได้ เพื่อที่จะดูข้อมูลของ record ก่อนหน้า ซึ่งทำให้เราสามารถคำนวณความแตกต่างระหว่าง record ปัจจุบัน กับ record ก่อนหน้าได้ เช่น ระยะเวลาระหว่าง 2 records เป็นตัว ตัวอย่าการใช้การก็ถ…

---

## [เราสามารถใช้ ROW\_NUMBER ในการเลือก record แรก (หรือ record ไหนก็ได้) จากการกลุ่มข้อมูล](https://discuss.dataengineercafe.io/t/row-number-record-record/105)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [January 31, 2022, 4:29am UTC](https://discuss.dataengineercafe.io/t/row-number-record-record/105 "2022-01-31T04:29:47Z")

</div>

SQL ด้านล่างนี้เป็นตัวอย่างที่ผมใช้เลือก record แรกจากกลุ่มของข้อมูลนะครับ ใช้บน BigQuery ซึ่งในตัวอย่างนี้ผมอยากจะเลือกเอา order แรกจาก source ที่ผมดึงมา โดยเรียงตาม publish date SELECT \* FROM ( SELECT \*, R…

---

## [ฟังก์ชั่น string\_agg เอาไว้เชื่อมต่อข้อมูลสตริงใน sql ตอนที่เรา group by](https://discuss.dataengineercafe.io/t/string-agg-sql-group-by/96)

<div class="topic-metadata">

**Author:** [@zkan](https://discuss.dataengineercafe.io/u/zkan)\
**Replies:** 0\
**Last updated:** [January 12, 2022, 8:51am UTC](https://discuss.dataengineercafe.io/t/string-agg-sql-group-by/96 "2022-01-12T08:51:42Z")

</div>

ลองนึกภาพว่าเรามีข้อมูลอยู่ประมาณนี้ เป็นข้อมูลชื่อเมนูต่างๆ :drooling\_face: เวลาที่เราอยากจะหาราคาเฉลี่ยของเมนูแต่ละประเภท เราก็จะเขียน SQL ได้ประมาณนี้ SELECT category, AVG(price) AS average\_price FROM food G…
