2017-11-14 110 views
19

Bağlam için hiç ışın kullanmamıştım. Işın modelini yaygın kullanım durumlarına nasıl uygulayacağımı anlamaya çalışıyorum.Apache Beam'de, uzun süreler boyunca gerilen, eşdüzeyleşme birleşimlerini nasıl ifade edersiniz?

Sınırsız bir Üretici koleksiyonunuz ve her Ürünün bir Üretici (bire - kadar, Üretici - Ürüne) sahip olacağı şekilde Sınırsız bir Ürünler koleksiyonunuz olduğunu düşünün. Ürünün Üreticisinin Ürününden önce (veya kısa bir süre sonra) göründüğü ek mülkünüz var. Ancak bir Üretici, Ürününden yıllar önce ortaya çıkabilir.

Sınırsız bir Üretici Ürünleri ile birlikte ürün üretmek istiyorsanız, bunları belirtmenin uygun yolu nedir? Pencereleri birleştiren yıllar süren pencereli bir birleştirmeye sahip olmak gibi görünüyor. Ancak Üreticilere bir yan giriş olarak sahip olmak, Üreticilerin Ürün göründüğünde çok yakından görünebileceğini düşünmüyor.

Bu iki kavramın karıştırılması için uygun bir yol var mı?

cevap

3

Yapımcı Ürün'ünden yıllar önce görünebileceğinden, Üreticilerinizi depolamak için bazı harici depolama (ör. BigTable) kullanabilir ve Ürün akışı için arama yapmak ve birleştirme gerçekleştirmek için bir ParDo yazabilirsiniz. Performansı daha da artırmak için toplu aramalar için durum bilgisi olan DoFn özelliğinden faydalanabilirsiniz (ödeme this blogu).

Ürün verilerinin Üretici verilerinden önce gönderildiği durumlar için birleştirme yapmak için pencereleme ve CoGroupByKey'yi kullanmaya devam edebilirsiniz. Bununla birlikte, buradaki pencere, sipariş verilemeyen teslimatı gerçekleştirecek kadar küçük olabilir.

İlgili konular