چهار نکته کلیدی که باید در نظر داشته باشید زمانی که به یک پایگاه داده طراحی شده برای پرس و جوهای تحلیلی از مقادیر زیادی از داده های سری زمانی نیاز دارید.
SQL اغلب هنگام مدیریت مقادیر انبوه دادههای سری زمانی با مشکل مواجه میشود، اما این به خاطر خود زبان نیست. مقصر اصلی معماری است که SQL معمولاً در آن کار میکند، یعنی پایگاههای داده رابطهای، که به سرعت ناکارآمد میشوند زیرا برای جستارهای تحلیلی حجم زیادی از دادههای سری زمانی طراحی نشدهاند.
به طور سنتی، SQL با سیستم های مدیریت پایگاه داده رابطه ای (RDBMS) که ذاتاً معامله هستند استفاده می شود. آنها حول مفهوم نگهداری و به روز رسانی سوابق بر اساس یک طرح واره سفت و سخت و از پیش تعریف شده ساختار یافته اند. برای مدت طولانی، گستردهترین نوع پایگاه داده رابطهای بود، با SQL به عنوان همراه جدا نشدنی آن، بنابراین قابل درک است که بسیاری از توسعهدهندگان و تحلیلگران داده با آن راحت هستند.
با این حال، ورود داده های سری زمانی چالش ها و پیچیدگی های جدیدی را در زمینه پایگاه های داده رابطه ای به همراه دارد. برنامهها، حسگرها و مجموعهای از دستگاهها جریان بیوقفهای از دادههای سری زمانی را تولید میکنند که مانند دادههای رابطهای در یک طرحواره ثابت قرار نمیگیرد. این جریان بی وقفه داده، مجموعه داده های عظیمی را ایجاد می کند که منجر به بارهای کاری تحلیلی می شود که نیاز به نوع منحصر به فرد پایگاه داده دارد. در چنین شرایطی است که توسعهدهندگان تمایل دارند به سمت NoSQL و پایگاههای اطلاعاتی سری زمانی بروند تا حجم عظیمی از دادههای نیمه ساختاریافته یا بدون ساختار تولید شده توسط دستگاههای لبه را مدیریت کنند.
در حالی که طراحی پایگاههای داده سنتی SQL برای مدیریت سریهای زمانی مناسب نیست، استفاده از یک پایگاه داده سری زمانی ساختهشده که SQL را در خود جای میدهد، به توسعهدهندگان کمکی حیاتی ارائه کرده است. کاربران SQL اکنون می توانند از این زبان آشنا برای توسعه برنامه های کاربردی بلادرنگ استفاده کنند و به طور موثر حجم رو به رشد داده های سری زمانی را جمع آوری، ذخیره، مدیریت و تجزیه و تحلیل کنند.
با این حال، با وجود این قابلیت جدید، کاربران SQL باید ویژگیهای خاصی از دادههای سری زمانی را در نظر بگیرند تا از مشکلات یا چالشهای احتمالی جلوگیری کنند. در زیر به چهار نکته کلیدی می پردازم که باید در هنگام غواصی در جستارهای SQL داده های سری زمانی به خاطر داشته باشید.
داده های سری زمانی ذاتا غیر رابطه ای هستند
این بدان معناست که ممکن است لازم باشد روشی را که در مورد استفاده از داده های سری زمانی فکر می کنیم تغییر جهت دهیم. به عنوان مثال، یک نقطه داده سری زمانی فردی به تنهایی کاربرد زیادی ندارد. این بقیه داده های این سری هستند که زمینه حیاتی را برای هر داده واحد فراهم می کنند. بنابراین، کاربران به مشاهدات سری زمانی به صورت گروهی نگاه می کنند، اما مشاهدات فردی همه گسسته هستند. برای کشف سریع اطلاعات بینش از این داده ها، کاربران باید بر اساس زمان فکر کنند و مطمئن شوند که یک پنجره زمانی برای درخواست های خود تعریف می کنند.
از آنجایی که ارزش هر نقطه داده مستقیماً تحت تأثیر سایر نقاط داده در توالی قرار می گیرد، داده های سری زمانی به طور فزاینده ای برای انجام تجزیه و تحلیل بلادرنگ برای شناسایی روندها و الگوها استفاده می شود و به توسعه دهندگان و رهبران فناوری اجازه می دهد تا تصمیمات آگاهانه را خیلی سریع بگیرند. . به دلیل زمان و منابعی که برای جستجوی دادههای مرتبط از چندین جدول میتواند صرف کند، این موضوع با دادههای رابطهای بسیار چالشبرانگیزتر است.
مقیاس پذیری از اهمیت بالایی برخوردار است
همانطور که تجهیزات بیشتری را به اینترنت متصل می کنیم، میزان داده های تولید شده به طور تصاعدی افزایش می یابد. هنگامی که این حجم کاری داده ها فراتر از موارد پیش پا افتاده رشد کنند – به عبارت دیگر، وقتی وارد یک محیط تولید می شوند – پایگاه داده تراکنشی قادر به مقیاس بندی نخواهد بود. در آن مرحله، جذب داده به یک گلوگاه تبدیل میشود و توسعهدهندگان نمیتوانند به طور موثر دادهها را پرس و جو کنند. و هیچکدام از اینها نمیتواند در زمان واقعی اتفاق بیفتد، زیرا تأخیر ناشی از خواندن و نوشتن پایگاه داده وجود دارد.
پایگاه داده سری زمانی که از SQL پشتیبانی می کند می تواند مقیاس پذیری و سرعت کافی را برای مجموعه داده های بزرگ فراهم کند. عملکرد جذب قوی به یک پایگاه داده سری زمانی اجازه می دهد تا به طور مداوم میلیاردها نقطه داده سری زمانی را بدون محدودیت یا محدودیت در ثانیه دریافت، تبدیل و تجزیه و تحلیل کند. از آنجایی که حجم داده ها با سرعت تصاعدی به رشد خود ادامه می دهند، پایگاه داده ای که می تواند مقیاس پذیر باشد برای توسعه دهندگانی که داده های سری زمانی را مدیریت می کنند بسیار مهم است. برای برنامهها، دستگاهها و سیستمهایی که حجم عظیمی از داده را ایجاد میکنند، ذخیره دادهها میتواند بسیار گران باشد. استفاده از فشردهسازی بالا هزینههای ذخیرهسازی داده را کاهش میدهد و تا ۱۰ برابر فضای ذخیرهسازی بیشتر را بدون کاهش عملکرد ممکن میسازد.
SQL را می توان برای پرس و جو از سری های زمانی استفاده کرد
پایگاه داده سری زمانی ساخته شده به کاربران امکان می دهد تا از SQL برای جستجوی داده های سری زمانی استفاده کنند. پایگاه داده ای که از Apache DataFusion، یک موتور جستجوی SQL توزیع شده استفاده می کند، حتی موثرتر خواهد بود. . DataFusion یک پروژه منبع باز است که به کاربران اجازه می دهد تا با استفاده از عبارات SQL به طور کارآمد داده ها را در پنجره های زمانی خاص جستجو کنند.
Apache DataFusion بخشی از اکوسیستم Apache Arrow است که شامل Flight SQL موتور جستجوی ساخته شده بر روی پرواز پیکان آپاچی و پارکت آپاچی، فرمت فایل ذخیره سازی ستونی. Flight SQL یک رابط SQL با کارایی بالا را برای کار با پایگاههای داده با استفاده از چارچوب Arrow Flight RPC ارائه میکند، که امکان دسترسی سریعتر به دادهها و تأخیر کمتر بدون نیاز به تبدیل دادهها به فرمت Arrow را فراهم میکند. درگیر کردن مشتری Flight SQL قبل از در دسترس بودن داده ها برای پرس و جو یا تجزیه و تحلیل ضروری است. برای ایجاد سهولت دسترسی بین Flight SQL و مشتریان، جامعه منبع باز یک درایور FlightSQL، یک بسته بندی سبک در اطراف کلاینت Flight SQL که با Go نوشته شده است.
علاوه بر این، اکوسیستم Apache Arrow بر اساس قالبهای ستونی برای نمایش درون حافظه (Apache Arrow) و فرمت فایل بادوام (Apache Parquet) است. ذخیرهسازی ستونی برای دادههای سری زمانی عالی است زیرا دادههای سری زمانی معمولاً حاوی چندین مقدار یکسان در طول زمان هستند. به عنوان مثال، اگر کاربر در هر دقیقه داده های آب و هوا را جمع آوری کند، مقادیر دما در هر دقیقه تغییر نمی کند.
این مقادیر یکسان فرصتی را برای فشرده سازی ارزان فراهم می کند، که موارد استفاده با کاردینالیته بالا را امکان پذیر می کند. این همچنین با استفاده از دستورالعملهای SIMD موجود در تمام پردازندههای مدرن، نرخ اسکن سریعتر را ممکن میسازد. بسته به نحوه مرتبسازی دادهها، کاربران ممکن است فقط به ستون اول دادهها نگاه کنند تا حداکثر مقدار یک فیلد خاص را بیابند.
این را در مقابل فضای ذخیرهسازی ردیفگرا قرار دهید، که از کاربران میخواهد برای یافتن حداکثر مقدار فیلد، به هر فیلد، مجموعه برچسبها و مهر زمانی نگاه کنند. به عبارت دیگر، کاربران باید ردیف اول را بخوانند، رکورد را به ستونها تجزیه کنند، مقادیر فیلد را در نتیجه خود بگنجانند و تکرار کنند. Apache Arrow فرآیند بسیار سریعتر و کارآمدتری را برای پرس و جو و نوشتن داده های سری زمانی فراهم می کند.
یک چارچوب نرمافزاری با زبان آگنوستیک مزایای زیادی ارائه میدهد
هر چه توسعهدهندگان بتوانند روی دادههای درون برنامههای خود کار بیشتری انجام دهند، آن برنامهها کارآمدتر خواهند بود. اتخاذ یک فریم ورک مبتنی بر زبان، مانند Apache Arrow، به کاربران امکان می دهد با داده های نزدیک به منبع کار کنند. یک چارچوب زبان شناس نه تنها نیاز به فرآیندهای استخراج، تبدیل و بارگذاری (ETL) را حذف یا کاهش می دهد، بلکه کار بر روی مجموعه داده های بزرگ را آسان تر می کند.
به طور خاص، Apache Arrow با Apache Parquet، Apache Flight SQL، Apache Spark، NumPy، PySpark، Pandas و دیگر کتابخانه های پردازش داده کار می کند. همچنین شامل کتابخانههای بومی در C، C++، C#، Go، Java است. ، جاوا اسکریپت، جولیا، MATLAB، Python، R، Ruby و Rust. کار در این نوع چارچوب به این معنی است که همه سیستمها از فرمت حافظه یکسانی استفاده میکنند، وقتی صحبت از ارتباطات متقابل سیستمی به میان میآید، هزینه اضافی وجود ندارد و تبادل دادههای متقابل استاندارد است.
زمان بالا برای سری های زمانی
دادههای سری زمانی شامل همه چیز از رویدادها، کلیکها و دادههای حسگر گرفته تا گزارشها، معیارها و ردیابیها میشود. حجم زیاد و تنوع بینش هایی که می توان از چنین داده هایی استخراج کرد، خیره کننده است. دادههای سری زمانی امکان درک دقیق الگوها را در طول زمان فراهم میکند و راههای جدیدی را برای تجزیه و تحلیل بلادرنگ، تحلیل پیشبینیکننده، نظارت بر اینترنت اشیا، نظارت بر برنامهها و نظارت بر توسعه میدهد و سریهای زمانی را به ابزاری ضروری برای تصمیمگیری مبتنی بر داده تبدیل میکند. p>
داشتن توانایی استفاده از SQL برای پرس و جو از آن داده ها، مانع قابل توجهی را برای ورود و پذیرش برای توسعه دهندگان با تجربه RDBMS از بین می برد. یک پایگاه داده سری زمانی که از SQL پشتیبانی میکند، با ارائه ابزارهای آشنا برای استفاده حداکثری از دادههای سری زمانی، به بستن شکاف بین معاملات و بارهای کاری تحلیلی کمک میکند.
علاوه بر ارائه یک انتقال راحت تر، یک پایگاه داده سری زمانی با پشتیبانی از SQL که بر روی اکوسیستم Apache Arrow ساخته شده است، قابلیت همکاری و قابلیت های پایگاه داده سری های زمانی را گسترش می دهد. این به توسعه دهندگان اجازه می دهد تا به طور موثر حجم بالایی از داده های سری زمانی را مدیریت و ذخیره کنند و از چندین ابزار دیگر برای تجسم و تجزیه و تحلیل آن داده ها استفاده کنند.
ادغام SQL در پردازش دادههای سری زمانی نه تنها بهترینهای هر دو جهان را گرد هم میآورد، بلکه زمینه را برای تکامل شیوههای تجزیه و تحلیل دادهها فراهم میکند – ما را یک قدم به استفاده کامل از ارزش همه دادههای اطرافمان نزدیکتر میکند. .
ریک اسپنسر معاون محصولات در InfluxData است.
—
New Tech Forum مکانی برای کاوش و بحث در مورد فناوری سازمانی نوظهور در عمق و وسعت بی سابقه ای فراهم می کند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه سوالات را به newtechforum@infoworld.com ارسال کنید.
پست های مرتبط
آنچه کاربران SQL باید در مورد داده های سری زمانی بدانند
آنچه کاربران SQL باید در مورد داده های سری زمانی بدانند
آنچه کاربران SQL باید در مورد داده های سری زمانی بدانند