Apache Arrow یک قالب داده ستونی در حافظه را تعریف می کند که پردازش را روی سخت افزار CPU و GPU مدرن تسریع می کند و دسترسی سریع به داده ها را بین سیستم ها امکان پذیر می کند.
کار با کلان داده به لطف سربار عملکرد مرتبط با انتقال داده ها بین ابزارها و سیستم های مختلف به عنوان بخشی از خط لوله پردازش داده می تواند چالش برانگیز باشد. در واقع، از آنجایی که زبانهای برنامهنویسی، فرمتهای فایل و پروتکلهای شبکه راههای متفاوتی برای نمایش دادههای یکسان در حافظه دارند، فرآیند سریالسازی و سریالزدایی دادهها به نمایشی متفاوت در هر مرحله از خط لوله داده، کار با مقادیر زیادی داده را کندتر میکند. از نظر سخت افزاری پرهزینه تر است.
Apache Arrow این مشکل را حل میکند و بارهای کاری تجزیه و تحلیل را برای سختافزارهای CPU و GPU مدرن کارآمدتر میکند. چارچوبی که یک قالب داده ستونی در حافظه را تعریف می کند که هر موتور پردازشی می تواند از آن استفاده کند، Apache Arrow برای OLAP (پردازش تحلیلی آنلاین) کاری را انجام می دهد که ODBC/JDBC برای OLTP (پردازش تراکنش آنلاین) انجام داد. ) با ایجاد یک رابط مشترک برای سیستمهای مختلف که با دادههای تحلیلی کار میکنند، حجم کار را انجام میدهد.
Apache Arrow شروع به پذیرفتن عمده در جامعه توسعه دهندگان کرده است و آماده است تا اکوسیستم کلان داده را برای همیشه تغییر دهد.
مزایای Apache Arrow
مزیت اصلی استفاده از Arrow عملکرد است. با Arrow، دیگر نیازی به سریالسازی و سریالزدایی دادهها هنگام جابجایی بین ابزارها و زبانهای مختلف نیست، زیرا همه چیز میتواند از فرمت Arrow استفاده کند. این به ویژه در مقیاس زمانی مفید است که برای پردازش داده ها به چندین سرور نیاز دارید.
مثال زیر را از افزایش عملکرد Ray، یک چارچوب پایتون برای مدیریت محاسبات توزیع شده در نظر بگیرید:
واضح است که تبدیل داده ها به فرمت Apache Arrow سریعتر از استفاده از جایگزینی برای پایتون مانند Pickle است. با این حال، وقتی صحبت از سریالزدایی به میان میآید، دستاوردهای عملکردی بیشتری حاصل میشود، که مرتبهای سریعتر است.
فرمت ستونی Apache Arrow به این معنی است که پردازش و دستکاری داده ها نیز سریعتر است زیرا برای CPU ها و GPU های مدرن طراحی شده است که می تواند داده ها را به صورت موازی پردازش کند و از مواردی مانند SIMD (دستورالعمل منفرد، داده های متعدد) استفاده کند. پردازش برداری.
Apache Arrow همچنین خواندنهای بدون کپی را فراهم میکند، بنابراین در شرایطی که میخواهید همان دادههای زیربنایی را به روشهای مختلف تبدیل و دستکاری کنید، نیازهای حافظه کاهش مییابد.
یک مزیت دیگر این است که Apache Arrow به خوبی با Apache Parquet یکپارچه می شود، یک قالب دیگر مبتنی بر ستون برای داده های متمرکز بر روی ماندگاری روی دیسک Arrow و Parket ترکیبی، مدیریت چرخه عمر و جابجایی داده ها از RAM به دیسک را بسیار ساده تر و کارآمدتر می کند.
اکوسیستم Apache Arrow یک مزیت اضافی ارائه می دهد، زیرا عملکرد و ویژگی های بیشتری در طول زمان اضافه می شود و عملکرد نیز بهبود می یابد. در بسیاری از موارد، شرکتها پروژههای کاملی را به Apache Arrow اهدا میکنند و به خود پروژه کمک زیادی میکنند. Apache Arrow تقریباً برای همه شرکت ها سودمند است زیرا انتقال داده ها بین سیستم ها را آسان تر می کند. با افزودن پشتیبانی Apache Arrow به یک پروژه، مهاجرت یا استفاده از آن فناوری برای توسعهدهندگان آسانتر میشود.
ویژگی ها و اجزای پیکان آپاچی
چهار ویژگی و مؤلفه کلیدی پروژه Apache Arrow وجود دارد: قالب داده ستونی Arrow، Arrow Flight، Arrow Flight SQL و Arrow DataFusion.
فرمت ستونی Arrow هسته پروژه است و مشخصات واقعی نحوه ساختار داده ها را در حافظه تعریف می کند. از منظر عملکرد، ویژگی های کلیدی ارائه شده توسط این قالب عبارتند از:
- داده ها می توانند به صورت متوالی خوانده شوند
- دسترسی تصادفی با زمان ثابت
- پشتیبانی از SIMD و پردازش برداری
- خواندن کپی صفر
Arrow Flight یک چارچوب RPC (تماس از راه دور رویه) است که به Apache Arrow اضافه شده است تا امکان انتقال آسان مقادیر زیادی از داده ها را در شبکه ها بدون هزینه سربار سریال سازی و deserialization فراهم کند. فشرده سازی ارائه شده توسط Arrow همچنین به این معنی است که در مقایسه با پروتکل های کمتر بهینه شده، پهنای باند کمتری مصرف می شود. بسیاری از پروژهها از Arrow Flight برای فعال کردن محاسبات توزیعشده برای حجمهای کاری تجزیه و تحلیل و علم داده استفاده میکنند.
فرم Arrow Flight، Arrow Flight SQL مستقیماً با پایگاه داده SQL تعامل دارد. هنوز آزمایشی در نظر گرفته می شود و ویژگی ها به سرعت در حال اضافه شدن هستند. یک درایور JDBC (اتصال پایگاه داده جاوا) اخیراً به پروژه اضافه شده است که به هر پایگاه داده ای که از JDBC یا ODBC (اتصال پایگاه داده باز مایکروسافت) پشتیبانی می کند اجازه می دهد با داده های Arrow از طریق Flight SQL ارتباط برقرار کند.
در نهایت، DataFusion یک چارچوب اجرای پرس و جو است که در سال ۲۰۱۹ به Apache Arrow اهدا شد. DataFusion شامل یک بهینه ساز پرس و جو و موتور اجرایی با پشتیبانی از API های SQL و DataFrame است. معمولاً برای ایجاد خطوط لوله داده، فرآیندهای ETL (استخراج، تبدیل، و بارگذاری) و پایگاه داده استفاده می شود.
پروژه های مهم پیکان آپاچی
بسیاری از پروژهها با Apache Arrow یکپارچهسازی میکنند تا ابزار خود را آسانتر کنند یا اجزای Apache Arrow را مستقیماً در پروژههای خود جاسازی کنند تا خود را از کارهای تکراری نجات دهند. موارد زیر برخی از آنها هستند:
- InfluxDB 3.0. InfluxDB موتور ذخیره سازی ستونی جدید (که قبلاً با نام InfluxDB IOx شناخته می شد) از فرمت Apache Arrow برای نمایش داده ها و انتقال داده ها به و از پارکت. همچنین از DataFusion برای اضافه کردن پشتیبانی SQL به InfluxDB استفاده می کند.
- Apache Parket. Parquet یک فرمت فایل برای ذخیره داده های ستونی است که توسط پروژه های زیادی برای ماندگاری پارکت از خواندن و نوشتن بردار به و از Apache Arrow پشتیبانی می کند.
- Dask. یک چارچوب محاسباتی موازی، Dask مقیاسبندی پایتون را آسان میکند. کد افقی از Apache Arrow برای دسترسی به فایلهای پارکت استفاده میکند.
- ری. Ray چارچوبی است که به دانشمندان داده اجازه می دهد تا داده ها را پردازش کنند، مدل های یادگیری ماشین را آموزش دهند، و به آنها خدمات ارائه دهند. مدل های در حال تولید با استفاده از یک ابزار یکپارچه برای جابهجایی دادهها بین مؤلفهها با حداقل هزینه به Apache Arrow متکی است.
- پانداها. یکی از محبوبترین ابزارهای تجزیه و تحلیل داده در اکوسیستم پایتون، پاندا است. a> قادر به خواندن داده های ذخیره شده در فایل های پارکت با استفاده از Apache Arrow در پشت صحنه است.
- Turbodbc. Turbodbc یک ماژول پایتون است که به دانشمندان داده اجازه می دهد تا به طور موثر به داده های ذخیره شده در پایگاه داده های رابطه ای از طریق رابط ODBC دسترسی داشته باشند. . Apache Arrow با اجازه دادن به دادهها به صورت دستهای و نه بهصورت تک رکورد، این کار را کارآمدتر میکند.
امروزه تلاش برای حذف اثرات قفل با بهبود قابلیت همکاری در بسیاری از زمینههای مختلف توسعه نرمافزار انجام میشود. به عنوان مثال، ما آن را در فضای مشاهده و نظارت با پروژه هایی مانند OpenTelemetry و همچنین در اکوسیستم کلان داده با پروژه هایی مانند Apache Arrow می بینیم.
با Apache Arrow، توسعه دهندگان نه تنها با عدم نیاز به اختراع مجدد چرخ در زمان صرفه جویی می کنند. آنها همچنین دسترسی ارزشمندی به کل اکوسیستم ابزارهای پردازش داده دارند که از Apache Arrow نیز استفاده می کنند، که می تواند پذیرش توسط کاربران جدید را به طور قابل توجهی آسان تر کند.
Anais Dotis-Georgiou یک مدافع توسعه دهنده برای InfluxData با اشتیاق به زیباسازی داده ها با استفاده از تجزیه و تحلیل داده ها، هوش مصنوعی و یادگیری ماشینی. او دادههایی را که جمعآوری میکند میگیرد و ترکیبی از تحقیقات، اکتشاف و مهندسی را برای ترجمه دادهها به چیزی با عملکرد، ارزش و زیبایی به کار میگیرد. هنگامی که او پشت صفحه نیست، می توانید او را در بیرون از خانه در حال کشیدن نقاشی، کشش، سوار شدن یا تعقیب توپ فوتبال بیابید.
—
New Tech Forum مکانی را برای رهبران فناوری – از جمله فروشندگان و سایر مشارکتکنندگان خارجی – فراهم میکند تا فناوری سازمانی نوظهور را در عمق و وسعت بیسابقه بررسی و بحث کنند. انتخاب ذهنی است، بر اساس انتخاب ما از فناوری هایی که معتقدیم مهم هستند و برای خوانندگان InfoWorld بیشترین علاقه را دارند. InfoWorld وثیقه بازاریابی را برای انتشار نمی پذیرد و حق ویرایش تمام محتوای ارائه شده را برای خود محفوظ می دارد. همه پرس و جوها را به doug_dineley@foundryco.com.
پست های مرتبط
چگونه Apache Arrow پردازش کلان داده را سرعت می بخشد
چگونه Apache Arrow پردازش کلان داده را سرعت می بخشد
چگونه Apache Arrow پردازش کلان داده را سرعت می بخشد