แปลงข้อมูลเป็นกิจกรรม pubsub

ฉันมีไปป์ไลน์กระแสข้อมูลที่รวบรวมข้อมูลผู้ใช้ เช่น การนำทาง การซื้อ การดำเนินการที่หยาบคาย ฯลฯ ฉันมีข้อกำหนดนี้เพื่อให้สามารถระบุรูปแบบแบบเรียลไทม์ จากนั้นจัดส่งเหตุการณ์ pubsub ที่บริการอื่นสามารถฟังเพื่อให้คำแนะนำแก่ผู้ใช้แบบเรียลไทม์ ข้อเสนอหรือโปรโมชั่น

ฉันกำลังคิดที่จะเริ่มจัดกลุ่มเหตุการณ์ตามรหัสผู้ใช้ จากนั้นหากตรงกับรูปแบบเพื่อสร้าง PCollection ที่มีชื่อเหตุการณ์ที่ต้องถูกทริกเกอร์ผ่าน pubsub

นี่เป็นแนวทางที่ถูกต้องหรือไม่? มีวิธีที่ดีกว่า?


person chchrist    schedule 25.08.2016    source แหล่งที่มา


คำตอบ (1)


สิ่งนี้ สามารถใช้งานได้อย่างแน่นอน สำหรับการใช้งานบางกรณี

หากคุณกำลังใช้ การกำหนดหน้าต่างตามเซสชัน ร่วมกับ การเริ่มทำงานล่วงหน้า (ทริกเกอร์เมื่อมาถึงองค์ประกอบแต่ละรายการ) คุณสามารถมีข้อมูลทั้งหมดที่จำเป็นในการระบุรูปแบบในแต่ละครั้งที่องค์ประกอบใหม่มาถึง

อย่างไรก็ตาม ขึ้นอยู่กับอัตราการส่งข้อมูลผู้ใช้ที่ถูกพุชและขนาดของเซสชัน อาจส่งผลให้มีข้อมูลจำนวนมากใน PCollection และการทำซ้ำรูปแบบนี้ที่ตรงกันจำนวนมาก (ในข้อมูลเดียวกัน) เนื่องจากคุณต้องนำข้อมูลทั้งหมดในเซสชันกลับมาใช้ใหม่ นอกจากนี้ คุณไม่สามารถใช้องค์ประกอบที่มาถึงก่อนเซสชันนี้

บางครั้ง คุณอาจดีกว่าด้วยการรักษาสถานะสำหรับผู้ใช้แต่ละคน (โดยไม่ต้องทำซ้ำรูปแบบที่ตรงกันกับข้อมูลทั้งหมดของผู้ใช้สำหรับเซสชันนี้) การใช้สถานะจะช่วยขจัดความจำเป็นในการทำงานกับหน้าต่างได้ กระบวนการใหม่ตอนนี้จะมีลักษณะดังนี้:

สำหรับแต่ละองค์ประกอบที่มาถึง:

  1. ดึงข้อมูลสถานะปัจจุบัน

  2. คำนวณสถานะใหม่ (ขึ้นอยู่กับสถานะเก่าและองค์ประกอบใหม่)

  3. หากจำเป็น ให้ส่งข้อความไปที่ PubSub

หากต้องการรักษาสถานะของคุณ คุณสามารถใช้ BigTable หรือ Datastore

person Fematich    schedule 25.08.2016
comment
ใช่ session windows จะเก็บข้อมูลจำนวนมากและการเรียกใช้รูปแบบเดิมซ้ำแล้วซ้ำเล่าอาจมีค่าใช้จ่ายสูงมาก... สำหรับการรับสถานะจาก BigTable หรือ Datastore ฉันกังวลเกี่ยวกับความเร็ว แต่ฉันคิดว่ามันคุ้มค่าที่จะตรวจสอบ - person chchrist; 26.08.2016
comment
Bigtable สามารถปรับขนาดได้ เวลาตอบสนองเป็นมิลลิวินาทีหลักเดียวถือเป็นบรรทัดฐานเมื่อการดำเนินการทั้งหมดเสร็จสิ้นภายในโซนคลาวด์เดียวกัน นอกจากนี้ยังมีการดำเนินการจำนวนมากเพื่อปรับปรุงปริมาณงานอีกด้วย เราสามารถพูดคุยเรื่องทั้งหมดนี้ได้ตามใจคุณ - person Solomon Duskis; 29.08.2016
comment
ยังไม่ได้เล่นกับ Bigtable เลย ฉันจะให้มันไป ฉันต้องการที่จะหารือกับคุณ - person chchrist; 30.08.2016
comment
โปรดติดต่อกลุ่ม google ของ google-cloud-bigtable-discuss ตามที่อธิบายไว้ใน: cloud .google.com/bigtable/docs/support - person Solomon Duskis; 30.08.2016