سیستم مدیریت جریان داده ها: تفاوت میان نسخه‌ها

از ویکی‌پدیا، دانشنامهٔ آزاد
محتوای حذف‌شده محتوای افزوده‌شده
Rzaahmadi69 (بحث | مشارکت‌ها)
ایجاد شده توسط ترجمهٔ صفحهٔ «Data stream management system»
Rzaahmadi69 (بحث | مشارکت‌ها)
ایجاد شده توسط ترجمهٔ صفحهٔ «Data stream management system»
خط ۸۹: خط ۸۹:
== منابع ==
== منابع ==
{{Reflist}}
{{Reflist}}
* {{Cite book|title=Data Streams: Models and Algorithms|last=Aggarwal|first=Charu C.|publisher=Springer|year=2007|isbn=978-0-387-47534-9|location=New York}}
<div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Streams: Models and Algorithms</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Aggarwal</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Charu C.</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Springer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2007</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-0-387-47534-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">New York</div></div></div></div><div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Streams: Models and Algorithms</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Aggarwal</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Charu C.</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Springer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2007</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-0-387-47534-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">New York</div></div></div></div><div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Streams: Models and Algorithms</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Aggarwal</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Charu C.</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Springer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2007</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-0-387-47534-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">New York</div></div></div></div>
* {{Cite book|title=Data Stream Management|last=Golab|first=Lukasz|last2=Özsu|first2=M. Tamer|publisher=Morgan and Claypool|year=2010|isbn=978-1-608-45272-9|location=Waterloo, USA}}
<div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Stream Management</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Golab</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Lukasz</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last2" class="cx-template-editor-param-key">Last name 2</span><span data-key="last2" title="The surname of the second author; don't wikilink, use 'authorlink2'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last2" style="position: relative;">Özsu</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first2" class="cx-template-editor-param-key">First name 2</span><span data-key="first2" title="Given or first name, middle names, or initials of the second author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first2" style="position: relative;">M. Tamer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Morgan and Claypool</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2010</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-1-608-45272-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">Waterloo, USA</div></div></div></div><div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Stream Management</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Golab</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Lukasz</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last2" class="cx-template-editor-param-key">Last name 2</span><span data-key="last2" title="The surname of the second author; don't wikilink, use 'authorlink2'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last2" style="position: relative;">Özsu</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first2" class="cx-template-editor-param-key">First name 2</span><span data-key="first2" title="Given or first name, middle names, or initials of the second author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first2" style="position: relative;">M. Tamer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Morgan and Claypool</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2010</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-1-608-45272-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">Waterloo, USA</div></div></div></div><div class="cx-template-editor-source-container" dir="ltr" style="display: none;" lang="en"><div class="cx-template-editor-source"><div class="cx-template-editor-title" title="This template formats a citation to a book using the provided bibliographic information (such as author and title) as well as various formatting options.">Cite book</div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="title" class="cx-template-editor-param-key">Title</span><span data-key="title" title="The title of the book; displays in italics" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="title" style="position: relative;">Data Stream Management</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last" class="cx-template-editor-param-key">Last name</span><span data-key="last" title="The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last" style="position: relative;">Golab</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first" class="cx-template-editor-param-key">First name</span><span data-key="first" title="Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first" style="position: relative;">Lukasz</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="last2" class="cx-template-editor-param-key">Last name 2</span><span data-key="last2" title="The surname of the second author; don't wikilink, use 'authorlink2'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="last2" style="position: relative;">Özsu</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="first2" class="cx-template-editor-param-key">First name 2</span><span data-key="first2" title="Given or first name, middle names, or initials of the second author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="first2" style="position: relative;">M. Tamer</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="publisher" class="cx-template-editor-param-key">Publisher</span><span data-key="publisher" title="Name of the publisher; displays after title" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="publisher" style="position: relative;">Morgan and Claypool</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="year" class="cx-template-editor-param-key">Year of publication</span><span data-key="year" title="Year of the source being referenced; use 'date' instead, if month and day are also known" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="year" style="position: relative;">2010</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="isbn" class="cx-template-editor-param-key">ISBN</span><span data-key="isbn" title="International Standard Book Number; use the 13-digit ISBN where possible" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="isbn" style="position: relative;">978-1-608-45272-9</div></div><div class="cx-template-editor-param"><div class="cx-template-editor-param-title"><span id="location" class="cx-template-editor-param-key">Location of publication</span><span data-key="location" title="Geographical place of publication; usually not wikilinked; omit when the publication name includes place" class="cx-template-editor-param-desc"></span></div><div class="cx-template-editor-param-value" data-key="location" style="position: relative;">Waterloo, USA</div></div></div></div>

== لینک های خارجی ==
* [http://www.pam2004.org/papers/113.pdf Using Data Stream Management Systems for Traffic Analysis: A Case Study, last visited 2013-01-10]
* [http://infolab.stanford.edu/stream/ STREAM: Stanford Stream Data Manager, last visited 2013-01-10]
* [http://datalab.cs.pdx.edu/niagara/ NiagaraST: A Research Data Stream Management System at Portland State University, last visited 2013-01-10]
* [http://odysseus.informatik.uni-oldenburg.de Odysseus: An open source Java based framework for Data Stream Management Systems, last visited 2013-01-10]
* [http://home.dei.polimi.it/margara/papers/survey.pdf Processing Flows of Information: From Data Stream to Complex Event Processing] - Survey article on Data Stream and Complex Event Processing Systems, last visited 2013-01-10
* [http://www.streambase.com/developers/docs/latest/streamsql/index.html StreamSQL reference, last visited 2013-01-10]
* [https://web.archive.org/web/20140706215458/http://www.sqlstream.com/stream-processing-with-sql/ Stream processing with SQL] - Introduction to streaming data management with SQL
[[رده:مدیریت داده‌ها]]
[[رده:مدیریت داده‌ها]]

نسخهٔ ‏۲۴ ژانویهٔ ۲۰۱۷، ساعت ۰۸:۴۸

یک سیستم مدیریت جریان داده  (DSMS) یک برنامه کامپیوتری برای مدیریت مستمر جریان داده است که شبیه به یک سیستم مدیریت پایگاه داده (DBMS) است که برای داده های استاتیک در پایگاه داده های مرسوم طراحی شده است.یک DSMS همچنین یک پردازش پرس و جوی انعطاف پذیر را ارائه می دهد به طوری که اطلاعات مورد نیاز بیان شده می تواند با استفاده از آن نمایش داده شود. اما در مقایسه با یک DBMS یک DSMS یک پرس و جو مستمر را اجرا می کند که نه تنها یک بار انجام می شود، بلکه به طور دائم نصب شده است. بنابراین پرس و جو به طور مداوم تا زمانی که آن را به صراحت حذف نکنیم، اجرا می شود. از آنجا که اکثر DSMS ها data-driven هستند، یک پرس و جوی مستمر تا زمانی که داده های جدید وارد سیستم می شود، نتایج جدید تولید می کند. این مفهوم اساسی شبیه به پردازش رخداد مجتمع است به طوری که هردو فناوری تا حدودی یکی هستند.

اصل عملکردی

یکی از مهم ترین ویژگی های یک DSMS امکان رسیدگی به طور بالقوه و همزمان به جریان داده هایی است که بی نهایت و به سرعت در حال تغییر هستند، اگر چه منابعی مانند حافظه ی اصلی محدود هستند. جدول زیر اصول مختلف DSMS را ارائه می کند و آنها را با DBMS سنتی مقایسه می کند.

سیستم مدیریت پایگاه داده (DBMS) جریان داده های سیستم مدیریت (DSMS)
داده های ماندگار (روابط) جریان داده های فرار
با دسترسی تصادفی دسترسی ترتیبی
پرس و جو های یک باره
پرس و جوهای مداوم و مستمر
(از لحاظ تئوری) فضای ذخیره سازی ثانویه نامحدود
حافظه اصلی محدود
تنها به حالت فعلی وابسته است ترتیب ورودی را در نظر می گیرد
نرخ به روز رسانی نسبتا پایین
به طور بالقوه نرخ به روز رسانی بسیار بالا
نیازمندی های کم
نیازمندی های بلادرنگ
داده های دقیق را دریافت می کند
داده های منسوخ یا نادرست را دریافت می کند
 پردازش پرس و جو قابل برنامه ریزی وارد می شود
داده های متغیر و مشخصات داده ها وارد می شود

مدل های پردازش و جریان

یکی از بزرگترین چالش هایی که یک DSMS دارد، رسیدگی به طور بالقوه به بی نهایت جریان داده با استفاده از یک مقدار ثابت از حافظه و هیچ گونه دسترسی تصادفی به داده ها است. روش های مختلفی به منظور محدود کردن مقدار داده ها در یک گذر وجود دارد که می توان آن ها را به دو نوع تقسیم کرد. نوع اول تکنیک های فشرده سازی است که سعی می کند داده هارا خلاصه کند و نوع دوم تکنیک های پنجره است که سعی می کند داده ها را به بخش های محدود تقسیم کند.

فشرده سازسی

ایده پشت تکنیک های فشرده سازی این است که تنها یک خلاصه ای از داده ها، اما نه همه (خام) نقاط داده ها از جریانی از داده ها حفظ می شود. الگوریتم ها به وسیله ی استفاده از هیستوگرام ها و یا طراحی، طیف وسیعی از نقاط تصادفی داده ها را به عنوان نمونه برای خلاصه سازی انتخاب می کند. یک مثال ساده از یک فشرده سازی محاسبه مداوم یک معدل است. به جای به خاطر سپردن هر نقطه داده ها، فشره سازی تنها حاصل جمع و تعداد موارد را نگه می دارد. معدل با تقسیم این حاصل جمع بر تعداد محاسبه می شود. با این حال باید ذکر شود که فشره سازی نمی تواند منعکس کننده اطلاعات دقیق باشد. بنابراین یک پردازش که بر اساس فشره سازی است  ممکن است نتایج نادرست تولید کند.

پنجره ها

به جای استفاده از سیناپس برای فشرده سازی مشخصات کل جریان داده، تکنیک پنجره تنها به یک بخش از داده ها نگاه می کند. این روش براساس این ایده که تنها داده های اخیر مناسب هستند، عمل می کند. بنابراین یک پنجره به طور مداوم بخشی از جریان داده ها را برش می دهد.به عنوان مثال ده عنصر اخیر جریان داده ها در طول پردازش مورد استفاده قرار می گیرند. انواع مختلفی از این پنجره ها وجود دارد مانند پنجره های کشویی که شبیه به لیست FIFO است و یا پنجره های  لغزان که بخش های متلاشی شده را برش می دهد. علاوه بر این پنجره ها می توانند براساس عناصرشان نیز فرق گذاشته شوند، به عنوان مثال در نظر گرفتن ده عنصر آخر و یا براساس زمان فرق گذاشته شوند و ده ثانیه ی آخر داده ها در نظر گرفته شوند. همچنین روش های مختلفی برای پیاده سازی پنجره ها وجود دارد. برای مثال روش هایی موجود است که از برچسب زمانی و یا فواصل زمانی برای پنجره های سیستم گسترده یا پنجره های مبتنی بر بافر برای هر گام پردازش استفاده می کند. پردازش پرس و جو ای پنجره های کشویی نیز در پردازنده های موازی مناسب است که با بهره برداری از موازی سازی بین پنجره های مختلف و یا در داخل محدوده ی هر پنجره پیاده سازی می شود.[۱]

پردازش پرس و جو

از آنجایی که نمونه های اولیه بسیاری وجود دارد یک معماری استاندارد وجود ندارد.با این حال، اکثر DSMS ها مبتنی بر پردازش پرس و جو در DBMS از تعریف زبان برای بیان پرس و جو ها استفاده می کند که در نهایت به یک طرح از عملگر ها ترجمه می شود. این برنامه می تواند به بهینه سازی و اجرا شده است. یک پردازش پرس و جو اغلب شامل مراحل زیر می باشد.

فرمول بندی پرسو جو های مستمر

فرمول بندی پرس و جو ها عمدتا با استفاده از زبان اعلانی مانند SQL در DBMS انجام می شود. از آنجا که هیچ زبان استاندارد پرس و جو برای بیان پرس و جو های مستمر وجود ندارد، اما تعداد زیادی زبان و تفاوت بین زبان ها وجود دارد. اما بسیاری از آنها بر اساس SQL هستند مانند زبان پرس و جو مستمر (CQL)  و StreamSQL و EPL. روش های گرافیکی ای هم هستند که هر گام پردازش به وسلیه ی یک جعبه و جریان پردازش توسط فلش هایی بین جعبه ها نمایش داده می شود.

زبان به شدت بستگی به مدل پردازش دارد. برای مثال اگر پنجره ها در حال استفاده برای پردازش هستند، تعریف یک پنجره باید بیان شود. در StreamSQL یک پرس و جو با پنجره های کشویی برای 10 عنصر آخر  به نظر مانند شرح زیر است:

این جریان به طور مداوم میانگین "قیمت"  10 تاپل اخیر را محاسبه می کند، اما فقط آن تاپل هایی را مد نظر می گیرد که قیمت آن ها بیتشر از اما تنها نظر آن چندتایی که قیمت ها بیشتر از 100.0.

در مرحله بعد پرس و جو اعلان شده به یک طرح پرس و جوی منطقی ترجمه می شود. یک طرح پرس و جو یک گراف جهت دار است که در آن گره ها، عملگر ها هستند و یال ها جریان پردازش را توصیف می کنند. هر عملگر در طرح پرس و جو معنا و مفهوم یک عمل خاص مانند فیلتر کردن و یا تجمع را کپسوله می کند. در DSMS ها که جریان داده های رابطه ای را پردازش می کند، عملگر ها برابر و یا شبیه به عملگر های جبر رابط ای هستند.بنابراین عملگر هایی برای انتخاب، عضویت و عملیات مجموعه ها موجود است. این ویژگی عملگر ها اجازه می دهد تا پردازش یک DSMS بسیار انعطاف پذیر و همه کاره باشد.

بهینه سازی پرس و جو ها 

طرح پرس و جو منطقی را می توان بهینه سازی کرد که به شدت بستگی به مدل جریان دارد. مفاهیم اولیه برای بهینه سازی پرس و جو های مداوم و مستمر مانند همان هایی است که در سیستم های پایگاه داده استفاده می شود. اگر جریان داده های رابطه ای وجود دارشته باشد و طرح پرس و جوی منطقی مبتنی بر عملگر های رابطه ای از جبر رابطه ای باشد، یک بهینه ساز پرس و جو می تواند از هم ارزی جبری برای بهینه سازی این طرح استفاده کند.

علاوه بر این تکنیک های بهینه سازی مبتنی بر قیمت مانند آنچه در DBMS هست،وجود دارد که در آن یک طرح پرس و جو با کمترین هزینه از بین طرح های پرس و جوی متفاوت معادل انتخاب می شود.انتخاب ترتیب دو عملگر الحاق پی در پی مثالی از آن می باشد. در DBMS این تصمیم عمدتا توسط یک روش خاص به وسیله ی پایگاه داده های درگیر انجام می شود، اما از آنجا که داده های یک جریان داده نامعلوم هستند، در DSMS این چنین روش هایی وجود ندارد.با این حال می توان یک جریان داده را برای مدت زمان مشخصی مشاهده کرد و مقداریاطلاعات از آن به دست آورد.با استفاده از این اطلاعات، پرسو جوی موردنظر می تواند بعدا بهینه شود. بنابراین برخلاف یک DBMS بعضی از DSMS ها به پرس و جو ها اجازه ی این را می دهند که در زمان اجرا هم بهینه شوند.بنابراین یک DSMS نیازمند استراتژی هایی برای جایگزینی طرح یک پرس و جوی در حال اجرا با یک پرس و جوی جدید است.

انتقالات پرس و  جو ها

از آنجایی که یک عملگر منطقی تنها مسئول معانی یک عمل هستند، اما شامل هیچ الگوریتمی نیستند. طرح پرس و جو منطقی باید تبدیل به یک فایل اجرایی شود. این عمل یک طرح پرس و جوی فیزیکی نامیده می شود. تمایز بین طرح عملگر منطقی و فیزیکی اجازه می دهد تا بیش از یک پیاده سازی برای یک عملگر منطقی ممکن باشد. برای مثال, عملگر الحاق از نظر منطقی یکی است، اگر چه می توان آن را توسط الگوریتم های مختلف مانند یک حلقه تو در تو پیوستن و یا مرتب کردن بر اساس ادغام پیوستن  پیاده سازی کرد.توجه کنید که این الگوریتم ها نیز به شدت وابسته به  جریان استفاده شده و مدل پردازش است.در نهایت یک پرس و جو به عنوان یک طرح پرس و جو فیزیکی در دسترس خواهد بود.

اجرای پرس و جو ها

چون طرح پرس و جوی فیزیکی شامل الگوریتم های قابل اجرا است، می تواند مستقیما اجرا شود.برای این منظور طرح پرس و جوی فیزیکی در سیستم نصب می شود.انتهای گراف به ورودی منابع متصل است که این منابع می توانند هر چیزی باشند،مانند اتصال به سنسور.بالای گراف است متصل به خروجی است که ممکن است برای مثال یک تجسم باشد. از آنجا که اکثر DSMS ها داده محور هستند، یک پرس و جو به وسیله ی هل دادن عناصر داده های ورودی از منبع به واسطه ی طرح پرس و جو به خروجی اجرا می شود. هر زمانی که یک عنصر داده از یک عملگر عبور می کند، عملگر مورد نظر عملیات خاص خودش را روی آن عنصر اجرا می کند و نتیجه را به صورت پی در پی به همه ی عمگرها اعمال می کند.

سیستم های مدیریت جریان داده

همچنین نگاه کنید

  • Complex Event Processing
  • Event stream processing
  • Relational data stream management system

منابع

  1. De Matteis, Tiziano; Mencagli, Gabriele (25 March 2016). "Parallel Patterns for Window-Based Stateful Operators on Data Streams: An Algorithmic Skeleton Approach". International Journal of Parallel Programming. doi:10.1007/s10766-016-0413-x.
  2. Arasu, A., et. al.
  3. {{cite conference}}: Empty citation (help)
  4. Chandrasekaran, S. et al, "TelegraphCQ: Continuous Dataflow Processing for an Uncertain World."
  5. Chen, J. et al, "NiagaraCQ: A Scalable Continuous Query System for Internet Databases."
  • Aggarwal, Charu C. (2007). Data Streams: Models and Algorithms. New York: Springer. ISBN 978-0-387-47534-9.
  • Golab, Lukasz; Özsu, M. Tamer (2010). Data Stream Management. Waterloo, USA: Morgan and Claypool. ISBN 978-1-608-45272-9.

لینک های خارجی