۱ دی ۱۴۰۳

Techboy

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

بررسی: Databricks Lakehouse Platform

Databricks Lakehouse Platform ذخیره سازی داده مقرون به صرفه را با یادگیری ماشین و تجزیه و تحلیل داده ترکیب می کند و در AWS، Azure و GCP در دسترس است. آیا می تواند یک جایگزین مقرون به صرفه برای نیازهای انبار داده شما باشد؟

Databricks Lakehouse Platform ذخیره سازی داده مقرون به صرفه را با یادگیری ماشین و تجزیه و تحلیل داده ترکیب می کند و در AWS، Azure و GCP در دسترس است. آیا می تواند یک جایگزین مقرون به صرفه برای نیازهای انبار داده شما باشد؟

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

دریاچه‌های داده حاوی مقدار بسیار زیادی داده بودند و معمولاً در خوشه‌های Apache Hadoop از رایانه‌های کالایی، با استفاده از HDFS (سیستم فایل توزیع‌شده Hadoop) و چارچوب‌های تجزیه و تحلیل منبع باز قرار داشتند. در اصل، تجزیه و تحلیل به معنای MapReduce بود، اما آپاچی اسپارک پیشرفت زیادی در سرعت پردازش ایجاد کرد. همچنین از پردازش جریانی و یادگیری ماشینی و همچنین تجزیه و تحلیل داده های تاریخی پشتیبانی می کند. دریاچه‌های داده تا زمانی که از آن استفاده نشده بود، طرحی بر داده‌ها تحمیل نمی‌کردند – فرآیندی که به عنوان طرحواره هنگام خواندن شناخته می‌شود.

انبارهای داده تمایل به داشتن داده‌های کمتری داشتند، اما با طرحی از پیش تعیین‌شده که هنگام نوشتن داده‌ها اعمال می‌شد (طرحواره در نوشتن) بهتر مدیریت می‌شد. از آنجایی که آنها اساساً برای تجزیه و تحلیل سریع طراحی شده بودند، انبارهای داده از سریعترین ذخیره سازی ممکن استفاده می کردند، از جمله دیسک های حالت جامد (SSD) پس از در دسترس بودن، و تا آنجا که ممکن بود رم. که سخت افزار ذخیره سازی انبارهای داده را گران کرد.

Databricks توسط افراد پشت سر Apache Spark تاسیس شد و این شرکت هنوز هم سهم زیادی در پروژه منبع باز Spark دارد. Databricks چندین محصول دیگر از جمله MLflow، Delta Lake، Delta Sharing، Redash و Koalas را نیز به منبع باز ارائه کرده است.

خطرات توسعه کم کد و بدون کد در معماری ابری

این بررسی درباره ارائه ابر تجاری فعلی Databricks، Databricks Lakehouse Platform است. همانطور که ممکن است حدس بزنید، Lakehouse مجموعه‌ای از دریاچه داده و انبار داده است. این پلتفرم اساساً SQL سریع، کاتالوگ داده و قابلیت های تجزیه و تحلیل را به دریاچه داده اضافه می کند. دارای عملکرد یک انبار داده بدون نیاز به ذخیره سازی گران قیمت است.

رقبای مستقیم Databricks Lakehouse Platform عبارتند از Dremio، Ahana Presto و Amazon Athena، علاوه بر پروژه منبع باز، Apache Spark. انبارهای داده ای که از جداول خارجی پشتیبانی می کنند، مانند Snowflake و Azure Synapse Analytics رقبای غیر مستقیم هستند.

عکس زیر نمای کلی از Databricks Lakehouse Platform است. توجه داشته باشید که از زمان نوشتن این مقاله، Unity Catalog هنوز به طور کلی در دسترس نیست.

Databricks Lakehouse Platform.

نمای سطح بالایی از پلتفرم Databricks Lakehouse.

شروع به کار با Databricks Lakehouse

پلتفرم Databricks Lakehouse روی سه ابر اصلی ارائه می‌شود: خدمات وب آمازون (AWS)، Microsoft Azure و Google Cloud Platform (GCP). در علی بابا نیز موجود است. Databricks Lakehouse به عنوان یک محصول شخص اول در Azure پشتیبانی می‌شود، جایی که من آزمایش عملی خود را برای این بررسی انجام دادم. این پلتفرم به صورت اولیه ارائه نمی‌شود، اگرچه می‌توانید محصولات منبع باز آن را در هر کجا که بخواهید مستقر کنید.

در حالی که می‌توانید اکثر وظایف علم داده، مهندسی داده و یادگیری ماشین را در Databricks Lakehouse با استفاده از نوت‌بوک، رابط خط فرمان و رابط کنسول انجام دهید، می‌توانید از ابزارها و زبان‌های مختلف کلاینت نیز استفاده کنید. نوت بوک های Databricks از Python، R و Scala پشتیبانی می کنند.

Databricks Lakehouse از Eclipse، IntelliJ، Jupyter، PyCharm، SBT، sparklyr و RStudio Desktop، SparkR و RStudio Desktop و Visual Studio Code برای IDE های خارجی پشتیبانی می کند. همچنین دارای رابط‌ها و درایورهایی است، از جمله رابط Databricks SQL برای Python، pyodbc، درایور Databricks ODBC، و رابط‌های Databricks JDBC driverCloud.

در اینجا نگاهی به صفحه افتتاحیه Azure Databricks داریم.

صفحه اولیه برای Azure Databricks.

ستون شروع در سمت چپ اقدامات مقدماتی را ارائه می دهد. صفحه علوم و مهندسی داده در سمت راست به اقدامات روتین اشاره می کند.

من با استفاده از Azure Databricks سه آموزش را مرور کردم. یکی علم و مهندسی داده های پایه را با استفاده از معماری خانه دریاچه ارائه شده توسط دریاچه دلتا پوشش داد. دو مورد دیگر به ترتیب یادگیری ماشین و SQL را پوشش دادند.

فناوری ابری بدون سرور از بین می رود

دریاچه دلتا

مستندات دریاچه دلتا دریاچه دلتا را به عنوان یک پروژه منبع باز توصیف می کند که می تواند برای ساخت یک معماری Lakehouse بر روی دریاچه های داده موجود مانند Amazon S3، Azure Data Lake Storage، Google Cloud Storage و HDFS استفاده شود. Delta Lake تراکنش‌های ACID، مدیریت فراداده مقیاس‌پذیر را فراهم می‌کند و پردازش جریانی و دسته‌ای داده را یکپارچه می‌کند.

مستندات دریاچه دلتا اطلاعات بیشتری درباره این پیشنهادها دارد:

  1. تراکنش‌های ACID در Spark: سطوح جداسازی قابل سریال‌سازی تضمین می‌کند که خوانندگان هرگز داده‌های متناقض را نمی‌بینند.
  2. مقیاس‌پذیری مدیریت فراداده: قدرت پردازشی Spark را برای مدیریت همه ابرداده‌های جداول در مقیاس پتابایت با میلیاردها فایل به راحتی به کار می‌گیرد.
  3. استریم و یکپارچه سازی دسته ای: میز در دریاچه دلتا یک میز دسته ای و همچنین منبع پخش و سینک است. دریافت جریانی داده‌ها، پر کردن پشتیبان‌های تاریخی دسته‌ای، پرس‌و‌جوهای تعاملی همگی کاملاً خارج از چارچوب هستند.
  4. اجرای طرح واره: به‌طور خودکار تغییرات طرحواره را کنترل می‌کند تا از درج سوابق بد در حین دریافت جلوگیری کند.
  5. سفر در زمان: نسخه‌سازی داده‌ها امکان بازگشت به عقب، مسیرهای حسابرسی کامل تاریخی و آزمایش‌های یادگیری ماشینی قابل تکرار را فراهم می‌کند.
  6. افزایش و حذف: از عملیات ادغام، به روز رسانی و حذف برای فعال کردن موارد استفاده پیچیده مانند عملیات تغییر-داده-گرفتن، عملیات تغییر آهسته ابعاد (SCD)، پخش جریانی و غیره پشتیبانی می کند.

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

علوم و مهندسی داده در Databricks Lakehouse

نزدیک به دو ساعت طول کشید تا نوت بوک علم داده و مهندسی ارائه شده برای این آزمایشی را مرور کنم.

فرمت Delta بهبود قالب پارکت است، بنابراین می توانید کلمه “delta” را برای کلمه “parquet” در دستورات Apache Spark و Spark SQL جایگزین کنید.

فرمت دلتا پیشرفتی از قالب پارکت است.

قالب دلتا بهبود فرمت پارکت است.

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

هماهنگ سازی داده ها برای خطوط لوله یادگیری ماشین

پیکربندی یک کلاستر استاندارد برای اجرای نوت بوک.

یک خوشه استاندارد پیکربندی شده برای اجرای نوت بوک.

سه راه اساسی برای ارتقاء میز پارکت به میز دلتا وجود دارد. در یک نوت بوک اسپارک پایتون، می توانید از spark.read.format("parquet") برای خواندن فایل پارکت در یک قاب داده و سپس نوشتن آن با استفاده از write.format قاب داده استفاده کنید. ("دلتا") روش.

چگونه میز پارکت را به میز دلتا (1) ارتقا دهیم.

ارتقا جدول پارکت به جدول دلتا در نوت بوک اسپارک پایتون.

شما می توانید اساساً همان کار را با استفاده از ساختار Spark SQL انجام دهید CREATE TABLE USING delta AS SELECT * FROM parket.''

  • < meta content="4.5" itemprop="ratingValue"/>

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

    مزایا

    • SQL سریع در دریاچه داده، با قیمت/عملکرد عالی.
    • از مدرن ترین چارچوب های یادگیری ماشین و یادگیری عمیق پشتیبانی می کند.
    • بهینه سازی AutoML و hyperparameter را ارائه می دهد.
    • می‌تواند حاکمیت را در دریاچه داده اعمال کند (هنگامی که Unity Catalog منتشر شود).

    معایب

    • برای تحلیلگران تجاری که برنامه نویسی نمی کنند خیلی سخت است.
    • یادگیری ماشین و یادگیری عمیق با وجود AutoML به مهارت های علم داده نیاز دارند.
    • هنوز ویژگی کامل نشده است.

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

  • SQL سریع در دریاچه داده، با قیمت/عملکرد عالی.
  • از مدرن ترین چارچوب های یادگیری ماشین و یادگیری عمیق پشتیبانی می کند.
  • بهینه سازی AutoML و hyperparameter را ارائه می دهد.
  • می‌تواند حاکمیت را در دریاچه داده اعمال کند (هنگامی که Unity Catalog منتشر شود).
  • برای تحلیلگران تجاری که برنامه نویسی نمی کنند خیلی سخت است.
  • یادگیری ماشین و یادگیری عمیق با وجود AutoML به مهارت های علم داده نیاز دارند.
  • هنوز ویژگی کامل نشده است.