۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

چگونه Apache Arrow InfluxDB را تسریع می کند

فرمت ستونی Apache Arrow در حافظه به یکی از اجزای حیاتی بسیاری از سیستم ها و ابزارهای پایگاه داده تحلیلی تبدیل شده است. چندین مزیت برای InfluxDB به ارمغان می آورد.

فرمت ستونی Apache Arrow در حافظه به یکی از اجزای حیاتی بسیاری از سیستم ها و ابزارهای پایگاه داده تحلیلی تبدیل شده است. چندین مزیت برای InfluxDB به ارمغان می آورد.

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

Apache Arrow را وارد کنید، یک چارچوب منبع باز که یک قالب داده ستونی در حافظه را تعریف می کند که هر موتور پردازش تحلیلی می تواند استفاده کند.

Apache Arrow که توسط رهبران منبع باز از Impala، Spark، Calcite و دیگران توسعه یافته است، به گونه ای طراحی شده است که استاندارد زبان آگنوستیک برای نمایش حافظه ستونی کارآمد برای تسهیل قابلیت همکاری باشد. Arrow خواندن‌های بدون کپی را فراهم می‌کند، نیازهای حافظه و چرخه‌های CPU را کاهش می‌دهد، و چون برای CPU و GPUهای مدرن طراحی شده است، Arrow می‌تواند داده‌ها را به صورت موازی پردازش کند و از داده‌های تک دستوره/چندگانه (SIMD) و پردازش و پرس‌وجو بردار استفاده کند.< /p>

تا کنون، Arrow از استقبال گسترده ای برخوردار بوده است.

چه کسی از Apache Arrow استفاده می کند؟

Apache Arrow قدرت بسیاری از پروژه ها برای تجزیه و تحلیل داده ها و راه حل های ذخیره سازی است، از جمله:

  • Apache Spark، یک موتور داده پردازش موازی در مقیاس بزرگ که از Arrow برای تبدیل Pandas DataFrames به Spark DataFrames استفاده می کند. این به دانشمندان داده امکان می‌دهد مدل‌های POC توسعه‌یافته در مجموعه‌های داده کوچک را به مجموعه داده‌های بزرگ منتقل کنند.
  • پارکت آپاچی، یک قالب ذخیره سازی ستونی بسیار کارآمد. پارکت از Arrow برای خواندن بردار استفاده می کند، که ذخیره سازی ستونی را با دسته بندی چندین ردیف در قالب ستونی کارآمدتر می کند.
  • InfluxDB، یک پلت فرم داده سری زمانی که از Arrow برای پشتیبانی از موارد استفاده تقریباً نامحدود، پرس و جو در چندین زبان پرس و جو (از جمله Flux، InfluxQL، SQL و موارد دیگر) و ارائه قابلیت همکاری استفاده می کند. با ابزارهای BI و تجزیه و تحلیل داده ها.
  • Pandas، یک جعبه ابزار تجزیه و تحلیل داده که بر روی پایتون ساخته شده است. Pandas از Arrow برای ارائه پشتیبانی خواندن و نوشتن برای پارکت استفاده می کند.
بررسی Dremio Cloud: یک خانه داده سریع و انعطاف پذیر در AWS

اثر فلش InfluxData-Apache

در اوایل سال جاری، InfluxData یک موتور پایگاه داده جدید ساخته شده بر روی اکوسیستم آپاچی را معرفی کرد. توسعه دهندگان موتور جدید را در Rust در بالای Apache Arrow، Apache DataFusion و پارکت آپاچی. با Apache Arrow، InfluxDB می‌تواند با ارائه تبادل داده‌های ستونی کارآمد، از موارد استفاده تقریباً نامحدود اصلی یا ابعادی پشتیبانی کند. برای نشان دادن، تصور کنید که داده های زیر را در InfluxDB می نویسیم:

فیلد۱ فیلد۲ tag1 tag2 tag3
۱i null tagvalue1 null null
۲i null tagvalue2 null null
۳i null تهی tagvalue3 null
۴i درست tagvalue1 tagvalue3 tagvalue4

با این حال، موتور داده ها را در قالب ستونی مانند این ذخیره می کند:

۱i ۲i ۳i ۴i
null تهی null درست
tagvalue1 tagvalue2 null tagvalue1
null تهی tagvalue3 tagvalue3
null تهی null tagvalue4
timestamp1 timestamp2 timestamp3 timestamp4

یا، به عبارت دیگر، موتور داده ها را به این صورت ذخیره می کند:

۱i, 2i, 3i, 4i;
null, null, null, true;
tagvalue1, tagvalue2, null, tagvalue1;
null, null, tagvalue3, tagvalue3; 
null, null, null, tagvalue4;
timestamp1, timestamp2, timestamp3, timestamp4; 

با ذخیره سازی داده ها در قالب ستونی، پایگاه داده می تواند مانند داده ها را برای فشرده سازی ارزان با هم گروه بندی کند. به طور خاص، Apache Arrow یک مکانیسم ارتباطی بین فرآیندی را برای انتقال مجموعه‌ای از آرایه‌های ستونی Arrow (به نام دسته رکورد) تعریف می‌کند، همانطور که در این سؤالات متداول. این کار را می توان به صورت همزمان بین فرآیندها یا به صورت ناهمزمان با نگه داشتن داده ها در ذخیره سازی انجام داد.

JDBC چیست؟ مقدمه ای بر اتصال به پایگاه داده جاوا

علاوه بر این، داده های سری زمانی منحصر به فرد هستند زیرا معمولاً دارای دو متغیر وابسته هستند. مقدار سری زمانی شما به زمان بستگی دارد و مقادیر با مقادیری که قبل از آنها بوده اند همبستگی دارند. این ویژگی سری‌های زمانی به این معنی است که InfluxDB می‌تواند از فشرده‌سازی دسته‌ای رکورد به میزان بیشتری از طریق رمزگذاری فرهنگ لغت استفاده کند. رمزگذاری دیکشنری به InfluxDB اجازه می دهد تا ذخیره سازی مقادیر تکراری را که اغلب در داده های سری زمانی وجود دارند حذف کند. InfluxDB همچنین با استفاده از دستورالعمل‌های SIMD، دستور پرس‌وجو بردار را فعال می‌کند.

کمک های Apache Arrow و تعهد به منبع باز

علاوه بر یک سطح رایگان از InfluxDB Cloud، InfluxData نسخه های منبع باز InfluxDB را تحت مجوز مجاز MIT ارائه می دهد. پیشنهادات منبع باز این آزادی را برای جامعه فراهم می کند تا راه حل های خود را در بالای کد ایجاد کند و توانایی تکامل کد را فراهم می کند، که فرصت هایی برای تأثیر واقعی ایجاد می کند.

قدرت واقعی منبع باز زمانی آشکار می‌شود که توسعه‌دهندگان نه تنها کد منبع باز ارائه می‌کنند، بلکه در پروژه‌های محبوب مشارکت می‌کنند. همکاری بین سازمانی برخی از محبوب ترین پروژه های منبع باز مانند TensorFlow، Kubernetes، Ansible و Flutter را ایجاد می کند. . مهندسان پایگاه داده InfluxDB کمک زیادی به Apache Arrow کرده اند، از جمله انتشار هفتگی https://crates.io/crates/arrow< /a> و https://crates.io/crates/parquet انتشارها. آنها همچنین به نوشتن پست های وبلاگ DataFusion کمک می کنند. سایر مشارکت‌های InfluxData به Arrow عبارتند از:

  • انواع سریع و کارآمد حافظه که توسط سایر اجراها انتخاب شده است
  • بهبود عملکرد در همه سطوح (apache/arrow-rs#1248 و apache/arrow-rs#2646)
  • ایمن کردن جعبه پیکان به صورت پیش‌فرض و بررسی خطای اضافی (apache/arrow-rs #817)
کار با لیست های Mastodon

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

Anais Dotis-Georgiou یک مدافع توسعه دهنده برای InfluxData با اشتیاق به زیباسازی داده ها با استفاده از تجزیه و تحلیل داده ها، هوش مصنوعی و یادگیری ماشینی. او داده‌هایی را که جمع‌آوری می‌کند می‌گیرد و ترکیبی از تحقیقات، اکتشاف و مهندسی را برای ترجمه داده‌ها به چیزی با عملکرد، ارزش و زیبایی به کار می‌گیرد. هنگامی که او پشت صفحه نیست، می توانید او را در بیرون از خانه در حال کشیدن نقاشی، کشش، سوار شدن یا تعقیب توپ فوتبال بیابید.

New Tech Forum مکانی را برای رهبران فناوری – از جمله فروشندگان و سایر مشارکت‌کنندگان خارجی – فراهم می‌کند تا فناوری سازمانی نوظهور را در عمق و وسعت بی‌سابقه بررسی و بحث کنند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه پرس و جوها را به doug_dineley@foundryco.com.