Applied Big Data Fundamentals

عنوان دوره: Big Data ؛ مقدماتی

استاد: مهندس احمدخانی

طول دوره: 14 جلسه 3 ساعته


جلسه اول: داده؛ از آغاز تا پایان / تاریخ 1400/04/20

اکوسیستم داده در سیستم های اطلاعاتی شامل گام های زیر است:

1- Data Ingestion (تزریق یا ورود داده)

این همان مرحله ورود اطلاعات به سیستم است به هر طریق ممکن. ورود اطلاعات می تواند از طریق http، query، socket یا هر روش دیگر صورت پذیرد.

از جمله ابزارهای قابل استفاده  در این مرحله میتوان به Kafka، Sqoop، Flume، nifi اشاره کرد.

2- Data Engineering (مهندسی داده)

در این مرحله cleaning، transform، enrich و conform کردن اطلاعات صورت می پذیرد.

از جمله ابزارهای قابل استفاده در این مرحله می توان به Map Reduce و Spark اشاره کرد.

3-Data Store (ذخیره سازی)

در این مرحله ذخیره سازی اطلاعات، ایمن سازی، govern و tag زدن انجام می پذیرد.

ابزار مورد استفاده در این مرحله Hadoop خواهد بود.

4- Data Scientist

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

ابزار مورد استفاده در این مرحله spark می باشد.

5-Data Analytics

 BI و APIs ها از جمله موارد فعالیت های این مرحله است.

ابزار مورد استفاده در این مرحله spark sql و pig هستند.


پردازش اطلاعات در کدام منطقه !

1- در روش اول ابتدا داده ها در بانک اطلاعاتی ذخیره می شوند و پردازش برروی اطلاعات انباشت شده صورت می پذیرد این روش به Data at REST معروف است.

2-در روش بعدی، پردازش در هنگام ذخیره سازی داده در بانک اطلاعاتی انجام می شود. این روش به Data in Motion معروف است. در اصل در این شیوه stream processing انجام می شود. داده ها پس از پردازش می توانند به شکل خام یا  پردازش شده در سیستم نگهداری خواهند شد.

- در ابتدا (سال 1980) به محل قرارگیری نتیجه پردازش ها DW (Data warehouse) اطلاق می شد. این داده ها در گزارش گیری های فهرست وار، BI و AI مورد استفاده قرار می گیرد.

- حدود سال 2010 محل نگهداری داده ها به Data Lake تغییر عنوان داد. وجه تمایز آن با وضعیت قبل آن بود که در این روش تغییراتی (update یا delete) برروی اطلاعات صورت نمی پذیرفت.

- از حوالی سال 2020 محل نگهداری داده ها به Data Lakehouse تغییر عنوان داد. در این روش علاوه بر داشتن ویژگی های DW، امکان انجام تغییرات (update یا delete) برروی اطلاعات وجود دارد.


ابزارهای مورد استفاده در دوره آموزشی:

- دیتابیس : mysql

- زبان برنامه نویسی: java, scala, python

     * جاوا برای kafka و map reduce استفاده خواهد شد

     * اسکالا برای spark مورد استفاده قرار میگیرد

- سیستم عامل لینوکس: CentOS

- از VirtualBox برای VM استفاده خواهد شد


چند نکته:

- تحمل خطا یا Fault Tolerance در اوراکل با RAC پیاده سازی شده است. در MSSQL تحمل خطا از طریق Always on پیاده سازی شده است که دراصل FT نیست و می توان سرورهای مربوطه را جداگانه برای Read یا Write مورد استفاده قرارداد.

- توزیع شوندگی در دو حوزه پردازش توزیع شده و ذخیرسازی توزیع شده قابل بررسی می باشد.

- تفاوت توزیع پردازش Parallel و Distribute آنست که در پردازش موازی core های cpu یک ماشین مورد استفاده قرار می گیرد و در پردازش توزیع شده cpu های چندین ماشین.

- Big Data چیست؟ داده هایی با حجم بالا، سرعت و نرخ رشد زیاد و پیچیدگی هستند.