กำลังโหลดข้อมูลลงในตารางข้อมูลที่แบ่งพาร์ติชันโดยใช้ Google Dataflow / Beam ด้วย write_truncate

Sirius 02/21/2017. 1 answers, 336 views
python google-bigquery google-bigquery google-cloud-dataflow google-cloud-dataflow apache-beam

ดังนั้นการตั้งค่าที่มีอยู่เดิมที่เราใช้ในการสร้างตารางใหม่สำหรับแต่ละวันซึ่งทำงานได้ดีกับตัวเลือก "WRITE_TRUNCATE" แต่เมื่อเราอัปเดตโค้ดเพื่อใช้ตารางที่แบ่งพาร์ติชันแล้วแม้ว่างาน dataflow ของเราจะไม่ทำงานกับ write_truncate

มันทำงานได้ดีอย่างสมบูรณ์ด้วยชุดการเขียนเขียนเป็น "WRITE_APPEND" (จากสิ่งที่ฉันเข้าใจจาก ลำแสง ก็อาจจะพยายามลบตารางแล้วสร้างมันใหม่) เนื่องจาก i `m จัดหามัณฑนากรตารางมันล้มเหลวในการสร้างใหม่ ตาราง.

ตัวอย่างข้อมูลโค้ด python:

beam.io.Write('Write({})'.format(date), beam.io.BigQuerySink(output_table_name + '$' + date, create_disposition=beam.io.BigQueryDisposition.CREATE_NEVER, write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE) 

ซึ่งทำให้เกิดข้อผิดพลาด:

Table IDs must be alphanumeric

เนื่องจากพยายามสร้างตารางใหม่และเราจัดหามัณฑนากรพาร์ทิชันไว้ในอาร์กิวเมนต์

นี่คือบางส่วนของสิ่งที่ฉันพยายาม:

  1. กำลังอัปเดต write_disposition เป็น WRITE_APPEND แม้ว่าจะทำงานได้ แต่ก็ไม่ผ่านจุดประสงค์เนื่องจากการเรียกใช้งานวันที่เดียวกันซ้ำกับข้อมูลซ้ำ
  2. การใช้

bq --apilog /tmp/log.txt load --replace --source_format=NEWLINE_DELIMITED_JSON 'table.$20160101' sample_json.json

คำสั่งเพื่อดูว่าฉันสามารถสังเกตบันทึกใด ๆ เกี่ยวกับวิธีการตัดทอนไม่ได้ผลจริงขึ้นอยู่กับการ เชื่อมโยง ที่ฉันพบ

  1. พยายาม ลิงก์ อื่น ๆ บางส่วน แต่นี่ก็ใช้ WRITE_APPEND

มีวิธีการเขียนลงในตารางที่แบ่งพาร์ติชันจากงาน dataflow โดยใช้วิธี write_truncate หรือไม่?

แจ้งให้เราทราบหากต้องการรายละเอียดเพิ่มเติม ขอบคุณ

4 Comments
Pablo 02/21/2017
ความล้มเหลวในการสร้างตารางกับมัณฑนากรพาร์ติชันอาจเป็นปัญหา ให้ฉันตรวจสอบและกลับไปหาคุณ
Pablo 02/21/2017
คุณสามารถจัดเรียงสแต็คสำหรับ "รหัสตารางของคุณต้องเป็นตัวอักษรและตัวเลข" หรือไม่?
Pablo 02/21/2017
ฉันได้ตรวจสอบกับ dev IO แล้ว ดูเหมือนว่าตอนนี้ยังไม่ได้รับการสนับสนุน : /
Sirius 02/22/2017
ขอบคุณสำหรับการตอบกลับ Pablo :) ฉันเพียงหวังว่าจะไม่ลบตารางสำหรับการตัดและเพียงล้างแถวทั้งหมดสำหรับพาร์ทิชันนั้น แต่ฉันคิดว่ามัน doesn`t ทำงานในทางที่ ลำแสง

1 Answers


community wiki 03/17/2017.

ดูเหมือนว่าจะไม่ได้รับการสนับสนุนในขณะนี้ เครดิตไปที่ @Pablo เพื่อหาข้อมูลจาก IO dev

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

Related questions

Hot questions

Language

Popular Tags