هذه المكتبة هي إطار لتحليل معالجة التدفق. من المفترض أن يتم استخدامها كمكتبة لبرامج go التي تحتاج إلى إجراء معالجة دفق لكميات كبيرة من البيانات.
وهو يتكون من رسم بياني يربط المصدر بعامل واحد أو أكثر، وينتهي عند الحوض. يقوم المشغلون بتمرير البيانات من واحد إلى آخر باستخدام قنوات go. مثال الرسم البياني لترميز الكائنات إلى snappy هو:
var from *util.MemoryBuffer
// fill up from
var to *util.MemoryBuffer
ch := stream.NewOrderedChain()
ch.Add(source.NewNextReaderSource(from))
timingOp, _, dur := timing.NewTimingOp()
ch.Add(timingOp)
ch.Add(compress.NewSnappyEncodeOp())
ch.Add(sink.NewWriterSink(to))
ch.Start()
log.Printf("RES: Compress Snappy.ttRatio %v", float64(to.ByteSize())/float64(from.ByteSize()))
log.Printf("RES: Compress Snappy.ttBuffered Items: %dtItem: %vttook: %vtrate: %dtsize: %Etsize/item: %E", to.Len(), *counter, *dur, int( float64(*counter)/(*dur).Seconds()), float64(to.ByteSize()), float64(to.ByteSize())/float64(*counter))
المشغلون هم المكونات الرئيسية للسلسلة. يقومون بمعالجة الصفوف للحصول على النتائج. المصادر هي عوامل تشغيل بدون مخرجات. الأحواض هي مشغلات بدون مدخلات. يقوم المشغلون بتنفيذ الدفق.Operator. إذا كان الأمر يتطلب إدخالًا، فسيتم تنفيذ الدفق. إذا كان ينتج مخرجات تنفذ Stream.Out.
يقدم مصممو الخرائط طريقة بسيطة لتنفيذ العوامل. يأخذ Mapper.NewOp() وظيفة من النموذج func(inputstream.Object, outputer) الذي يعالج الإدخال ويخرجه إلى كائن Outputer. يتم موازنة مصممي الخرائط تلقائيًا. توفر المولدات طريقة لمنح مصممي الخرائط مساحة تخزين محلية لمؤشر الترابط من خلال عمليات الإغلاق. يمكنك أيضًا منح مصممي الخرائط وظائف خاصة بعد الانتهاء من معالجة المجموعة الأخيرة.
يمكنك أيضًا تقسيم بيانات السلسلة إلى سلاسل أخرى. يأخذ Stream.Fanout المدخلات وينسخها إلى N سلاسل أخرى. يأخذ الموزع المدخلات ويضعها في إحدى سلاسل N وفقًا لوظيفة التعيين.
يمكن طلب السلاسل أو عدم ترتيبها. تحافظ السلاسل المرتبة على ترتيب الصف من الإدخال إلى الإخراج (على الرغم من أن المشغلين ما زالوا يستخدمون التوازي).
التجميع: اذهب للبناء
الاختبار: الذهاب للاختبار