Lanjutin AI Skills Challenge nya Microsoft - Fabric Analytics Engineer

Jadi kemarin tuh gw udah post pengenalan terkait Microsoft Fabrics sebagai solusi end-to-end data, platform kayak Snowflake lah. Nah karena gw gabut, lagi gak kondusif untuk belajar use case ETL di GCP dan lagi hopeless lanjutin belajar machine learning, jadi gw memutuskan untuk lanjut belajar Microsoft Fabrics.

Gw akan buat quick review gw di sini, sebagai notes apa aja pembahasan penting di tiap modul nya, karena gw pikir klo gw buat notes 1 post 1 modul gw rasa pendek nya nanggung, panjang nya kebanyakan copas. Oke tanpa berlama-lama mari kita lanjut.

1. Introduction to end-to-end analytics using Microsoft Fabrics

Microsoft Fabric itu adalah platform end-to-end analitik, yang mengintegrasikan beberapa service/layanan yang memungkinkan kita melakukan memuat, menyimpan, memproses, dan menganalisis data dalam 1 environment.

Ada beberapa tools yang diintegrasikan dalam Microsoft Fabrics, yaitu:

- Data integration

- Data engineering

- Data warehousing

- Real-time analytics

- Data science

- Business intelligence


Gw sebenarnya agak sangsi sama nama tools nya, kenapa gak dibuat nama khusus aja kayak misal untuk pengolahan di Snowflake dikasih nama Snowpark dan sebagainya. Tapi mari kita lanjut dulu aja, pasti nanti tercerahkan untuk setiap tools nya.

Next chapter nya kita dikasih pembahasan mengenai OneLake, sebagai istilah untuk arsitektur OneLake yang menyediakan layanan terintegrasi. Anggaplah kayak ada ETL di GCP, beberapa data nya di simpan di Cloud Storage, Cloud SQL, dan BigQuery. Sedangkan yang gw tangkap di sini tuh, semua data nya disimpan dan di akses di/dari OneLake, makanya ada disebut kayak begini

Fabric's OneLake architecture facilitates collaboration between data team members and saves time by eliminating the need to move and copy data between different systems and teams. OneCopy is a key component of OneLake that allows you to read data from a single copywithout moving or duplicating data.

Ya kan ya? Nah ini dijelasin  juga tuh, produk untuk setiap layanannya, jadi akan gw petakan lagi di bawah ini:

- Data integration > Data Factory

- Data engineering > Synapse Data Engineering

- Data warehousing > Synapse Data Warehouse

- Real-time analytics > Synapse Real Time Analytics

- Data science > Synapse Data Science

- Business intelligence > Power BI

- Insight to action > Data Activator (Coming soon)


Trus dijelasin lagi ni, OneLake itu dibangung di atas Azure Data Lake Storage (lakehouse), inget ini data lake, jadi bisa nyimpan semua format data, termasuk CSV, JSON, Delta, Parquet dan lainnya. Kemudian dari yang gw baca lagi, berarti bener ni metode nya kayak yg gw jelasin di atas yg pake perbandingan penyimpanan data di GCP, jadi kita gak perlu lagi memindahkan atau menyalin data, dan untuk data tabular itu nanti mesin analitik di Fabric nya bakalan nulis data ke format delta-parquet dan mesin bisa berintdak dengan format seperti pada umumnya.

Ada lagi fitur penting di OneLake, yaitu kemampuan untuk membuat 'shortcuts', karena gw gak terlalu jago menerjemahkan, jadi baca aja sendiri yak :v 

One important feature of OneLake is the ability to create shortcuts, which are embedded references within OneLake that point to other files or storage locations. Shortcuts allow you to quickly source your existing cloud data without having to copy it, and enables Fabric experiences to derive data from the same source to always be in sync.

Yang gw tangkep, fungsi shortcut ini ya kayak icon pintasan di desktop kita, tapi bedanya ini di tools yang kita pakai, misalnya nih kita asumsikan di environment GCP, anggaplah kita punya data yang lagi kita olah di BigQuery, nah data nya kan tabular yang padahal dia di simpan di Cloud Storage, kita bisa langsung mengakses dan melihat lokasi asli raw data di Cloud Storage nya. 


Gw tau Spark, tapi gak tau itu serverless compute yang lain apaan wkwkwk


2. Get started with lakehouses in Microsoft Fabric

Pengenalan singkat, dijelasin ulang bahwa fondasi Microsoft Fabric itu menggunakan OneLake (lakehouse), dan untuk mesin yang memproses data nya itu menggunakan Apache Spark dan SQL Gampang nya, lakehouse (data lake and data warehouse), jadi si OneLake ini flexible and scalable sebagai penyimpanan data lake, dan punya kemampuan untuk query dan menganalisa data sebagai data warehouse. Akhirnya gw mengetahui apa itu lakehouse wkwkwk padahal gak pernah ada niatan tau ini sebelumnya, ini ada analogi yang bagus kenapa kita perlu pakai lakehouse

Imagine your company has been using a data warehouse to store structured data from its transactional systems, such as order history, inventory levels, and customer information. You have also collected unstructured data from social media, website logs, and third-party sources that are difficult to manage and analyze using the existing data warehouse infrastructure. Your company's new directive is to improve its decision-making capabilities by analyzing data in various formats across multiple sources, so the company chooses Microsoft Fabric.

 

Poin 'Flexible schema-on-read semantics' ini keren juga ya, jadi kita gak harus mendefinisikan struktur/skema nya dulu sebelum ngeload data, melainkan pas data di-load atau diproses. Tapi kan inni data lake, ngapain pake ngomongin skema?

Masukin data ke lakehouse ada beberapa cara, contohnya:
  • Upload, ya manual upload kek biasa
  • Dataflows (Gen2), seinget gw ini tuh kek Dataflow di GCP, ya untuk ingest dan sink nya ke lakehouse OneLake ini, mesin utamanya dinamain Power Query Online
  • Notebooks, ya biasa lah ya, untuk ingest dan transform data, trus load
  • Data Factory pipelines, ini kurang lebih tujuannya kek dataflow juga, tapi ada orkestrator macam Composer.
Gw baru tau ada fitur bullet point :v oke kedepannya akan rajin pakai bullet point wkwkw.


3. Use Apache Spark in Microsoft Fabric
Modul ini akan berfokus untuk ngasih tau kita gimana cara pakai Spark di Microsoft Fabric untuk melakukan ingest, process, dan analyze data di dalam lakehouse.
WKWKWKKWK isi nya kurang lebih cara pakai PySpark, ya gak beda jauh lah sama klo kita mau ngelakuin analisis pakai Pandas. Jadi gak ada pembahasan banyak di sini wkwkwk

4. Work with Delta Lake tables in Microsoft Fabric
Tadi kan bahasannya di OneLake ini kita bisa punya tabular data walau penyimpanan di Microsoft Fabric itu disebut lakehouse. Nah di sini bakalan dijelasin lebih rinci.
Table dalam Microsoft Fabric itu berbasis Linux foundation, berformat Delta lake table, yang biasa digunakan di Apache Spark (sumpah gw gak ngerti apa yang gw ketik ini). Jadi klo gw nggak salah paham, delta lake ini adalah table yang bisa dipakai untuk memproses data menggunakan Spark, trus juga bisa untuk menyimpan data layaknya database relasional dengan kemampuan batch atapun streaming data. Di sini ada istilahnya Spark Structured Streaming, gw pernah nih belajar ginian di Spark ya pokoknya biar kita bisa mengolah data secara streaming lah, API nya si Spark. Modul ini juga ngasih tau beberapa code yang membuat kita bisa menggunakan delta table sebagai media untuk sink secara streaming.

5. Use Data Factory pipelines in Microsoft Fabrics
Inisari langsung, Data Factory ini memberikan kita kemampuan untuk mebuat pipeline dan okrestrasi nya untuk kebutuhan ingest dan transformation. Harusnya penjelasan ke bawah gak akan jauh sih.

Secara tegas Microsoft menyatakan bahwa Microsoft Fabric ini mempermudah kita dalam membuat pipeline, dalam canvas nya kita bisa mendefinisikan task atau sekuensial proses dengan minimal atau tanpa coding. Gw liat-liat sih cara penyebutan nya kayak begini, misal kita mau melakukan copy data, nah itu disebut activity, atau task nya gitu lah. Jadi gw liat di sini ada Copy Data tool, biasa dipakai untuk menyalin data antara sumber dan target tanpa perlu melakukan transformasi/perubahan pada data.

Data Factory ini juga memberikan template yang bisa kita pakai, kayak gambar di bawah.

Use the Copy Data activity when you need to copy data directly between a supported source and destination without applying any transformations, or when you want to import the raw data and apply transformations in later pipeline activities

If you need to apply transformations to the data as it is ingested, or merge data from multiple sources, consider using a Data Flow activity to run a dataflow (Gen2). You can use the Power Query user interface to define a dataflow (Gen2) that includes multiple transformation steps, and include it in a pipeline.
Gw tau konteks nya yang pertama itu "Kalau mau nyalin data tanpa transformasi ... lakukan transformasi di pipeline selanjtunya", tapi kalimat kedua nya itu bilang kalau mau transformasi, consider pakai Dataflow. Apa karena Data Factory gak bisa transformation? Anggaplah gak ada template nya, tapi apa samsek gak bisa manual tanpa template gitu buat transformasi? (Sejauh ini gw belum validasi lagi di dokumentasi nya, nanti gw cari)

6. Ingest Data with Dataflows Gen2  in Microsoft Fabric
Sangsi lagi nih gw wkkwkw, jadi di modul introduction nya bilang Dataflows ini untuk (membuat pipeline?) secara visual dan juga untuk kebutuhan transformasi menggunakan Power Query Online. Nah, apakah Data factory yang emang pure untuk membuat pipeline gak bisa melakukan transformasi jadi hanya pure copy raw data? Soalnya emang tadi ada dibilang sih klo mau copy raw dan melakukan transformasi, itu bisa pakai Data Factory dan dilanjutkan dengan Dataflows wkwkkw.
 Dataflows are a type of cloud-based ETL (Extract, Transform, Load) tool for building and executing scalable data transformation processes. Traditionally, data engineers spend significant time extracting, transforming, and loading data into a consumable format for downstream analytics. The goal of Dataflows Gen2 is to provide an easy, reusable way to perform ETL tasks using Power Query Online. 
Gw belum dapet jawaban pasti sih, karena emang gak bisa explore lebih dalam kek megang produk nya, orang gak ada trial nya, gak bisa nerima outlook pribadi wkwk.

7. Ingest data with Spark and Microsoft Fabric notebooks
Gw baru ngerti di modul Microsoft Fabrics kita bukan belajar per tools nya, gak terasa end-to-end lewat tiap service nya. Soalnya gw sadari beberapa kali gw belajar modul nya "ingesting data", beda metode aja wkwkwk.
First, let's discuss what Fabric notebooks offer over the other ingestion options. Unlike manual uploads, notebooks provide automation, ensuring a smooth and systematic approach. Dataflows offer a UI experience; however, they aren't as performant with large semantic models. Pipelines allow you to orchestrate the Copy Data, and may require dataflows or notebooks for transformations. Therefore, notebooks provide a comprehensive, automated solution for ingestion and transformation.
Ya kurang lebih gimana cara kita masukin data, tapi bukan pakai Dataflow, melanikan pakai notebook, katanya karena "notebooks provide automation", gw gak tau automation ini maksudnya kek scheduling atau apa. Poin paling penting yang gw dapat itu, saat kapan ingest pakai notebooks? Saat perlu transformasi kompleks brutal parah, yak kurang lebih gitu. Dan tadi Microsoft nya ngebandingin dengan Dataflow, karena kalah UI ngakak wkwkwkw.

V-Order and Optimize Write enhance Delta tables by sorting data and creating fewer, larger Parquet files.

8. Organize a Fabric lakehouse using medallion architecture desin
Ini udah gw bahas di postingan Microsoft Fabric sebelumnya, jadi gw salin aja yak

The Medallion Architecture, sebenarnya gw tau istilah itu di Azure ini, tapi gw malah dapat link ori nya dari Databricks, another data platform, wow bahkan baru pertama kali ngulik databricks ini sumpah, ternyata saingan dari Snowflake dan Fabrics itu sendiri wkwkwkkwkw Jadi intinya Medallion Architecture ini adalah desain untuk media penyimpanan yang menggunakan istilah seperti medali untuk setiap layer nya, jadi misal nih untuk layer Bronze, itu data nya beneran pure asli mentah, raw tanpa transform apapun. Trus data nya di kirim ke Silver layer, naik kasta kan tuh, di situ data udah mulai di rapihin, di benerin struktur nya, format dan kualitas lain lah intinya. Setelah dari situ, data nya di kirim lagi ke Gold layer, ini data yang udah bisa disebar ke bisnis ataupun user lain untuk kebutuhan mereka gitu lah. Sebenarnya data udah bisa diakses di Silver layer, tapi klo mau yg udah mateng ya bisa langsung dari Gold aja.

Trus di course Fabrics itu gw pernah baca klo Medallion Architecture ini gak sekedar 3 layer doang, bisa aja di tambah misalnya platinum untuk kebutuhan lain, mungkin data yang udah 'jadi', tinggal pake tanpa perlu pengolahan sedikitpun, mungkin untuk stakeholder yang males wkwkwkkw.

9. Get started with data warehouses in Microsoft Fabric
Baca sekilas
Fabric's data warehouse is a relational data warehouse that supports the full transactional T-SQL capabilities you'd expect from an enterprise data warehouse. It's a fully managed, scalable, and highly available data warehouse that can be used to store and query data in the Lakehouse. Using the data warehouse, you're fully in control of creating tables, loading, transforming, and querying data using either the Fabric portal or T-SQL commands. You can use SQL to query and analyze the data, or use Spark to process the data and create machine learning models.
Kesannya kayak Data Warehouse yang kek RDBMS, support OLTP gitu gak sih? Jujur gw terpaku sama istilah transactional nya. Mana ngomongin fact and dimensional table lagi wkwkwk gw juga udah agak lupa sama ginian, next mau coba belajar apa dan bagaimana data warehouse di desain.
Di sini juga ada penjelasan singkat mengenai data ingestion to table, kayak bagusnya tuh kita load data ke staging table dulu, biar bisa melakukan data cleansing, transformation, dan validation. Mungkin case nya biar benar-benar utuh lah ya, gak ada yg kurang lagi even udah melewati ETL ke table di data warehouse nya.

Gw mau pause dulu, mau keluar sebentar wkwkkw

10. Load data into a Microsoft Fabric data warehouse

Gak tau apa bedanya atau benefit atau key point terkait data warehouse di Microsoft Fabrics


Intinya aja nih mungkin dari yg gw baca, data warehouse di support kemampuan T-SQL layaknya enterprise data warehouse (lah klo bilang gini bukannya malah fitur yang ada harusnya tetap ada atau di-upgrade ya? Tapi malah disebut kemampuan macam fitur terbaru)

Di modul data warehouse ini kita dikasih tau untuk menaruh data di staging layer sebelum masuk ke data warehouse, tujuannya untuk melakukan pre-processing data. Tapi gw gak tau ini modul nya kek gak konsisten, beberapa kali bilang staging layer di data warehouse, beberapa kali juga bilang staging layer sebelum masuk ke data warehouse (terpisah). 

Ada 2 tipe dalam mekanisme saat load data:

  • Full (initial load), biasa dilakukan buat masukin data secara keseluruhan, sifatnya akan menghapus seluruh data histori yang ada lalu memasukan seluruh data nya.
  • Incremental load, ini mungkin kayak CDC ya, mode load nya kek append, tujuannya buat upload data lah.

Gw gak ngerti analogi SCD di sini

Slowly Changing Dimensions change over time, but at a slow pace and unpredictably. For example, a customer’s address in a retail business. When a customer moves, their address changes. If you overwrite the old address with the new one, you lose the history. But if you want to analyze historical sales data, you might need to know where the customer lived at the time of each sale. This is where SCDs come into play.

Trus ada beberapa tipe SCD juga


Ya sisanya ngasih tau beberapa cara load data ke data warehouse, ada yg pakai SQL, TSQL, Dataflow, data pipeline pakai Data Factory


11. Use tools to optimize Power BI performance

Akhirnya masuk ke modul yang belum gw pelajari sebelumnya wkwkwkw. Jadi harusnya banyak sih yg gw catat di sini, soalnya gw mikir Power BI di sini tuh ya buat visualisasi, tapi kek nya nggak dah, gw juga belajar istilah baru kayak DAX query, apaan itu DAX bjir, otw belajar.

Dari page introduction nya sih gw dah terbayang ini Power BI buat apaan, jadi misal dashboard kita lambat nih, nah problem nya dari mana? bisa aja source nya bermasalah, struktur atau modeling data, atau emang halaman report dashboard itu sendiri yang bermasalah. Jadi kita bisa mengoptimasi query untuk dilakukan analisis performa nya, troubleshoot DAX (apaan ni wkwkkw), dan juga mengoptimasi model data nya pakai Tabular Editor. Wah dah banyak nih yg gw gak tau, semoga masuk pembahasannya.

Pembahasan pertama, menggunakan Performance Analyzer

Jadi ada fitur di Power BI Desktop (apa cuma desktop nya aja?), yaitu Performance analyzer, yang dapat memabntu kita melihat gimana report kita bekerja dari query yang udah dibuat.

The Performance analyzer displays and records logs that measure how each of your report elements performs when users interact with them.

Dari kalimat nya aja dah menjelaskan ini buat apaan, Performance analyzer ini menunjukan dan merekam log, yang menghitung gimana setiap elemen report nya bekerja ketika user berinteraksi, kita bisa ngeliat mana yang performa nya paling rendah, jadi bisa kita lakukan perubahan, analisis lagi dan liat perubahannya.

Performance Analyzer ngambil data dari beberapa subsistem yang menjalankan Power BI Report, sebagai berikut:

  • Report Canvas, yang menyediakan UI untuk Power BI reports, kurang lebih gw pahamin canvas ini bekerja sebagai media yang menjembatani user dengan data, karena disebut Report Canvas ini bisa mengembalikan data dengan high-level, internal, Power BI query languange atau disebut Semantic Query
  • Data Shape Engine (DSE), mengevaluasi si Semantic Query, dengan membuat dan menjalankan 1 atau lebih DAX query pada data yang disimpan di Power BI, PB Desktop, Azure Analysis atau SQL Server.
  • Data Model Engine (AS), 

Iya nih bener, jadi ada fitur namanya Performance Analyzer, kita bisa melakukan analisis terhadap performa dari query yang udah kita buat dalam melakukan reporting.


Kalau dari penjelasannya sih, kita tinggal klik Start recording, trus pindah tab report, trus balik lagi buat ngeliat gimana si aspek report nya ngequery.













Komentar

Postingan populer dari blog ini

What have i learn in almost 3 weeks?

Bikin ETL Sederhana Menggunakan Python dan PostgreSQL

Intensity atau Consistency?