5

से स्ट्रीमिंग मैं एक पाइथन डेटाफ्लो का उपयोग करके Google PubSub से BigQuery में कुछ डेटा स्ट्रीम करने का प्रयास कर रहा हूं। परीक्षण प्रयोजनों के लिए मैंपब/सब से BigQuery

options.view_as(StandardOptions).streaming = True 

स्थापना करके एक स्ट्रीमिंग का पाइप लाइन में निम्न कोड https://github.com/GoogleCloudPlatform/DataflowSDK-examples/blob/master/python/dataflow_examples/cookbook/bigquery_schema.py ढाल लिया है तो फिर मैं record_ids पाइप लाइन बदल/पब से पढ़ने के लिए उप

# ADDED THIS 
lines = p | 'Read PubSub' >> beam.io.ReadStringsFromPubSub(INPUT_TOPIC) | beam.WindowInto(window.FixedWindows(15)) 
# CHANGED THIS # record_ids = p | 'CreateIDs' >> beam.Create(['1', '2', '3', '4', '5']) 
record_ids = lines | 'Split' >> (beam.FlatMap(split_fn).with_output_types(unicode)) 
records = record_ids | 'CreateRecords' >> beam.Map(create_random_record) 
records | 'Write' >> beam.io.Write(
    beam.io.BigQuerySink(
     OUTPUT, 
     schema=table_schema, 
     create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED, 
     write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE)) 

नोट: मैं श्वेत सूची में किया गया है गूगल द्वारा (अल्फा में)

कोड को चलाने के लिए अब जब मैं इसे करने की कोशिश मैं एक त्रुटि

Workfl है ओउ असफल कारण: (f215df7c8fcdbb00): अज्ञात स्ट्रीमिंग सिंक: bigquery

आप यहाँ पूर्ण कोड पा सकते हैं: https://github.com/marcorigodanzo/gcp_streaming_test/blob/master/my_bigquery_schema.py

मुझे लगता है कि इस पाइप लाइन प्रकार स्ट्रीमिंग का अब किया जा रहा है के साथ क्या करना है, किसी को भी कृपया मुझे बताओ कैसे कर सकते हैं स्ट्रीमिंग पाइपलाइन में एक bigQuery लिखने के लिए?

उत्तर

2

बीम पायथन स्ट्रीमिंग पाइपलाइनों से BigQuery को लेखन का समर्थन नहीं करता है। अभी के लिए, आपको बीम जावा का उपयोग करने की आवश्यकता होगी - आप क्रमशः PubsubIO.readStrings() और BigQueryIO.writeTableRows() का उपयोग कर सकते हैं।

+0

ठीक है, यूजीन धन्यवाद। मैं अजगर का उपयोग करने की उम्मीद कर रहा था। क्या आप जानते हैं कि भविष्य में यह बदलेगा? क्या आप मुझे पब/सब से कोड पढ़ने और जावा में बिगक्वायर को लिखने के उदाहरण के बारे में भी संबोधित कर सकते हैं? –

+0

मेरा मानना ​​है कि यह उदाहरण https://github.com/apache/beam/blob/master/examples/java8/src/main/java/org/apache/beam/examples/complete/game/LeaderBoard.java दोनों का उपयोग करता है। हां, पाइथन अंततः जावा के साथ पकड़ लेगा (संभावित रूप से बीम के वर्तमान में विकास पोर्टेबिलिटी फ्रेमवर्क के माध्यम से जो पाइथन पाइपलाइनों को जावा ट्रांसफॉर्म का उपयोग करने की अनुमति देगा), लेकिन मैं भविष्यवाणी नहीं कर सकता कि समय रेखा क्या होगी। – jkff

संबंधित मुद्दे