Menggunakan pengalaman Python di buku catatan

Notebook Python adalah pengalaman baru yang dibangun di atas notebook di Fabric. Ini adalah alat yang serbaguna dan interaktif yang dirancang untuk analisis data, visualisasi, dan pembelajaran mesin. Ini memberikan pengalaman pengembangan yang mulus untuk menulis dan mengeksekusi kode Python. Kemampuan ini menjadikannya alat penting bagi ilmuwan data, analis, dan pengembang BI, terutama untuk tugas eksplorasi yang tidak memerlukan big data dan komputasi terdistribusi.

Dengan menggunakan buku catatan Python, Anda mendapatkan:

  • Beberapa kernel Python bawaan: Buku catatan Python menawarkan lingkungan pengkodean Python murni tanpa Spark, dengan tiga versi kernel Python bawaan: Python 3.10, Python 3.11, dan Python 3.12. Lingkungan mendukung fitur IPython asli seperti iPyWidget dan perintah ajaib.

  • Hemat biaya: Notebook Python baru menawarkan manfaat hemat biaya dengan berjalan pada satu kluster node dengan memori 2vCores/16GB secara default. Penyiapan ini memastikan pemanfaatan sumber daya yang efisien untuk proyek eksplorasi data dengan ukuran data yang lebih kecil.

  • Lakehouse dan sumber daya tersedia secara asli: Fabric lakehouse bersama dengan fitur lengkap sumber daya bawaan notebook tersedia di Python notebook. Fitur ini memungkinkan pengguna dengan mudah membawa data ke notebook python, cukup coba drag and drop untuk mendapatkan potongan kode.

  • Campurkan pemrograman dengan T-SQL: Python notebook menawarkan cara mudah untuk berinteraksi dengan endpoint analitik Data Warehouse dan SQL di explorer. Dengan menggunakan notebookutils data connector, Anda dapat dengan mudah menjalankan skrip T-SQL di bawah konteks Python.

  • Dukungan untuk pustaka Analitik Data Populer: Notebook Python dilengkapi dengan pustaka yang sudah terpasang seperti DuckDB, Polars, dan Scikit-learn, menyediakan toolkit komprehensif untuk manipulasi data, analisis, dan pembelajaran mesin.

  • IntelliSense Lanjutan: Notebook Python mengadopsi Pylance sebagai mesin IntelliSense, bersama dengan layanan bahasa kustom Fabric lainnya, dengan tujuan memberikan pengalaman pemrograman mutakhir bagi pengembang notebook.

  • NotebookUtils dan Tautan Semantik: Toolkit API yang kuat memungkinkan Anda menggunakan kemampuan Fabric dan Power BI dengan mudah melalui pengalaman berbasis kode terlebih dahulu.

  • Kemampuan Visualisasi Kaya: Selain fungsi pratinjau data kaya yang populer 'Table' dan fungsi 'Chart', perangkat ini juga mendukung pustaka visualisasi populer seperti Matplotlib, Seaborn, dan Plotly. PowerBIClient juga mendukung pustaka ini untuk membantu pengguna lebih memahami pola dan wawasan data.

  • Kemampuan Umum untuk Fabric Notebook: Semua fitur tingkat Notebook secara alami dapat diterapkan untuk notebook Python, seperti fitur pengeditan, AutoSave, kolaborasi, berbagi dan manajemen izin, integrasi Git, impor/ekspor, dan lainnya.

  • Kemampuan Sains Data stack penuh: Alat Data Wrangler yang canggih dengan kode rendah, kerangka kerja pembelajaran mesin MLFlow, dan Copilot yang kuat semuanya tersedia di notebook Python.

Cara mengakses notebook Python

Setelah membuka notebook di Fabric, Anda dapat beralih ke Python di menu dropdown bahasa di tab Home dan mengonversi seluruh pengaturan notebook ke Python.

Cuplikan layar memperlihatkan beralih ke Python dari menu bahasa buku catatan.

Sebagian besar fitur umum didukung di tingkat notebook. Untuk mempelajari lebih lanjut, lihat Cara menggunakan notebook Fabric dan Mengembangkan, menjalankan, serta mengelola notebook Fabric. Artikel ini mencantumkan beberapa kemampuan kunci yang spesifik untuk skenario Python.

Menjalankan buku catatan Python

Notebook Python mendukung beberapa metode eksekusi pekerjaan:

  • Eksekusi interaktif: Anda bisa menjalankan notebook Python secara interaktif seperti notebook Jupyter asli.
  • Jadwalkan eksekusi: Anda dapat menggunakan fitur penjadwal ringan di halaman pengaturan notebook untuk menjalankan notebook Python sebagai job batch.
  • Jalankan pipeline: Anda dapat mengatur notebook Python sebagai aktivitas notebook di Pipeline. Proses menghasilkan snapshot setelah eksekusi pekerjaan.
  • Eksekusi referensi: Anda bisa menggunakan notebookutils.notebook.run() atau notebookutils.notebook.runMultiple() untuk mereferensikan menjalankan buku catatan Python di buku catatan Python lain sebagai pekerjaan batch. Proses menghasilkan snapshot setelah proses referensi selesai.
  • %run: Anda dapat menggunakannya %run untuk merujuk dan menjalankan notebook lain dalam konteks eksekusi yang sama, sehingga Anda dapat langsung memanggil fungsi dan menggunakan kembali variabel yang didefinisikan di notebook tersebut. Untuk detail selengkapnya, lihat dokumentasi tentang cara mereferensikan menjalankan buku catatan.
  • Eksekusi API Publik: Anda dapat menjadwalkan eksekusi notebook Python menggunakan Notebook Run Public API. API Penjadwal Pekerjaan mendukung eksekusi berparameter dan mengembalikan nilai keluar dari eksekusi notebook. Nilai keluar dapat digunakan untuk orkestrasi bersyarat dan memberi sinyal hasil saat mengatur notebook Python dalam skenario otomatisasi dan CI/CD. Pastikan properti bahasa dan kernel dalam metadata notebook muatan API publik diatur dengan benar. Nilai parameter yang diteruskan melalui API Publik tersedia untuk notebook Python saat runtime menggunakan pola akses parameter standar yang digunakan dalam notebook Fabric. Untuk detail tentang bentuk permintaan untuk parameter dan pengambilan nilai keluar, lihat Mengelola dan menjalankan notebook di Fabric dengan API. Anda dapat memantau status eksekusi dan membatalkan instans pekerjaan melalui API Penjadwal Pekerjaan, melengkapi pengalaman antarmuka pengguna untuk Melihat semua eksekusi.

Note

Autentikasi principal layanan didukung untuk Item REST API (CRUD untuk notebook) dan Job Scheduler API (eksekusi), memungkinkan otomatisasi tanpa pengawasan yang aman dan CI/CD untuk notebook Python. Tambahkan perwakilan layanan ke ruang kerja dengan peran yang sesuai untuk menggunakan API ini.

Anda bisa memantau detail eksekusi pekerjaan buku catatan Python pada tab pita Jalankan ->Tampilkan semua eksekusi.

Note

Saat ini, %run hanya mendukung referensi item notebook pada notebook Python, bukan modul kode (seperti file .py) dari folder sumber daya notebook.

Interaksi data

Anda dapat berinteraksi dengan lakehouse, gudang, endpoint analitik SQL, dan folder sumber daya bawaan di notebook Python.

Note

Runtime notebook Python sudah terpasang sebelumnya dengan pustaka delta-rs dan duckdb untuk mendukung pembacaan dan penulisan data Delta Lake. Namun, beberapa fitur Delta Lake mungkin tidak didukung sepenuhnya. Untuk detail lebih lanjut dan pembaruan terbaru, lihat dokumentasi delta-rs dan DuckDB .

Interaksi Lakehouse

Anda bisa mengatur rumah danau sebagai default, atau Anda juga bisa menambahkan beberapa rumah danau untuk dijelajahi dan digunakan di buku catatan.

Jika Anda belum terbiasa membaca objek data seperti tabel Delta, coba seret dan lepas file dan tabel Delta ke kanvas notebook, atau gunakan opsi Muat data di menu dropdown objek. Notebook secara otomatis memasukkan potongan kode ke dalam sel kode dan menghasilkan kode untuk membaca objek data target.

Note

Jika Anda mengalami OOM saat memuat data dalam jumlah besar, coba gunakan dataframe dari DuckDB, Polars, atau PyArrow alih-alih Pandas.

Anda dapat menemukan operasi write lakehouse di tabel Browse code snippet ->Write data to Delta.

Cuplikan layar menunjukkan operasi penulisan lakehouse.

Interaksi gudang dan pemrograman campuran dengan T-SQL

Anda dapat menambahkan endpoint warehouse atau SQL analytics dari Warehouse explorer di notebook. Demikian pula, Anda dapat menyeret dan menjatuhkan tabel ke kanvas buku catatan, atau menggunakan operasi pintasan di menu dropdown tabel. Notebook secara otomatis menghasilkan cuplikan kode untuk Anda. Anda dapat menggunakan utilitas notebookutils.data untuk membuat koneksi dengan Gudang dan mengkueri data menggunakan pernyataan T-SQL dalam konteks Python.

Cuplikan layar memperlihatkan pintasan tabel gudang.

Note

Titik akhir analitik SQL bersifat baca-saja.

Folder sumber buku catatan

Folder sumber daya bawaan Notebook tersedia secara native pada notebook Python. Anda dapat dengan mudah berinteraksi dengan file di folder sumber daya bawaan dengan menggunakan kode Python seolah-olah Anda bekerja dengan sistem file lokal Anda. Saat ini, folder resource "Environment" belum didukung.

Operasi kernel

Buku catatan Python mendukung tiga kernel bawaan: Python 3.10, Python 3.11, dan Python 3.12. Kernel default yang dipilih adalah Python 3.12. Anda dapat dengan mudah beralih di antara keduanya.

Anda dapat menginterupsi, memulai ulang, atau mengganti kernel di tab Home pada pita. Menghentikan kernel di notebook Python sama dengan membatalkan sel di notebook Spark.

Cuplikan layar memperlihatkan operasi kernel.

Keluar kernel yang abnormal menyebabkan eksekusi kode terputus dan variabel hilang, tetapi tidak menghentikan sesi notebook.

Beberapa perintah dapat menyebabkan kernel mati. Misalnya, quit() dan exit().

Untuk siklus hidup dukungan setiap versi kernel Python, termasuk tanggal akhir dukungan dan langkah migrasi, lihat runtime notebook Python dan siklus hidup kernel di Fabric.

Manajemen pustaka

Gunakan perintah %pip dan %conda untuk instalasi inline. Perintah ini mendukung baik perpustakaan publik maupun perpustakaan yang disesuaikan.

Untuk pustaka yang disesuaikan, unggah file pustaka ke folder Sumber daya bawaan . Platform ini mendukung berbagai jenis pustaka, termasuk format seperti Wheel (.whl), JAR (.jar), DLL (.dll), dan Python (.py). Cukup seret dan letakkan file tersebut, dan cuplikan kode akan dibuat secara otomatis.

Anda mungkin perlu me-restart kernel untuk menggunakan paket yang diperbarui.

Untuk lebih memahami dan menggunakan perintah serupa, lihat tabel berikut.

Command/Syntax Tujuan utama Cara kerjanya di Jupyter Notebook Kasus penggunaan umum Notes
%pip install package Memasang paket Python Menjalankan pip di kernel Python notebook tersebut Cara yang disarankan untuk menginstal paket Di notebook Python, sama seperti !pip; tidak otomatis me-restart kernel
!pip install package Menginstal paket Python melalui shell Menjalankan pip sebagai perintah shell Cara alternatif untuk menginstal paket Di notebook Python, sama seperti %pip; tidak otomatis me-restart kernel
import sys; sys.exit(0) Menghidupkan ulang kernel buku catatan Segera memulai ulang kernel Mulai ulang kernel secara terprogram Menghapus semua variabel dan status; tidak disarankan untuk menggunakan secara langsung
notebookutils.session.restartPython() Menghidupkan ulang kernel buku catatan Panggilan sys.exit(0) secara internal Cara yang disarankan untuk menghidupkan ulang kernel API resmi, lebih aman dan lebih kompatibel daripada menggunakan sys.exit(0) secara langsung

Note

  • Di notebook Python, %pip dan !pip memiliki perilaku yang sama: keduanya menginstal paket ke lingkungan kernel saat ini, dan tidak ada yang secara otomatis memulai ulang kernel setelah instalasi.
  • Jika Anda perlu memulai ulang kernel (misalnya, setelah menginstal paket tertentu), gunakan notebookutils.session.restartPython() sebagai pengganti import sys; sys.exit(0).
    • notebookutils.session.restartPython() adalah API resmi yang membungkus sys.exit(0) , dan lebih aman serta kompatibel di lingkungan notebook.
  • Jangan gunakan sys.exit(0) langsung kecuali memang perlu.

Pemantauan penggunaan sumber daya notebook Python waktu nyata

Penting

Fitur ini sedang dalam tahap pratinjau.

Dengan menggunakan panel monitor sumber daya, Anda dapat melacak informasi runtime penting seperti durasi sesi, jenis komputasi, dan metrik sumber daya waktu nyata, termasuk konsumsi CPU dan memori, langsung di dalam notebook Anda. Fitur ini memberikan gambaran umum langsung tentang sesi aktif Anda dan sumber daya yang digunakan.

Monitor sumber daya meningkatkan visibilitas tentang bagaimana beban kerja Python menggunakan sumber daya sistem. Ini membantu Anda mengoptimalkan performa, mengelola biaya, dan mengurangi risiko kesalahan kehabisan memori (OOM). Dengan memantau metrik secara real time, Anda dapat mengidentifikasi operasi intensif sumber daya, menganalisis pola penggunaan, dan membuat keputusan berdasarkan informasi tentang menskalakan atau memodifikasi kode.

Untuk mulai menggunakannya, atur bahasa buku catatan Anda ke Python dan mulai sesi. Anda kemudian dapat membuka monitor dengan mengklik sumber daya komputasi di bilah status buku catatan atau dengan memilih Tampilkan penggunaan sumber daya dari toolbar. Panel monitor sumber daya muncul secara otomatis, memberikan pengalaman pemantauan terintegrasi untuk kode Python di notebook Fabric.

Cuplikan layar memperlihatkan pemantauan penggunaan sumber daya real time notebook Python.

Perintah khusus konfigurasi sesi

Mirip dengan mempersonalisasi konfigurasi sesi Spark di notebook, Anda juga dapat menggunakan %%configure di notebook Python. Notebook Python mendukung kustomisasi ukuran node komputasi, titik mount, dan lakehouse default sesi notebook. Anda dapat menggunakan pengaturan ini baik dalam aktivitas notebook interaktif maupun notebook pipeline. Gunakan %%configure perintah di awal buku catatan Anda, jika tidak Anda harus memulai ulang sesi buku catatan agar pengaturan dapat berlaku.

Berikut adalah properti yang didukung di buku catatan Python %%configure:

%%configure -f
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
}

Anda dapat melihat pembaruan sumber daya komputasi pada bilah status notebook, dan memantau penggunaan CPU serta memori node komputasi secara real time.

Cuplikan layar memperlihatkan pembaruan sumber daya komputasi.

Note

Eksekusi yang dipicu API mematuhi konfigurasi sesi seperti komputasi vCore dan defaultLakehouse ditentukan melalui metadata notebook atau %%configure. API Penjadwal Pekerjaan juga mendukung pemilihan lakehouse target dan lingkungan saat runtime. Untuk detail tentang bidang payload, lihat Mengelola dan menjalankan notebook di Fabric dengan API.

NotebookUtils

Notebook Utilities (NotebookUtils) adalah paket bawaan yang membantu Anda dengan mudah melakukan tugas-tugas umum di Fabric notebook. Sudah terpasang di runtime Python. Gunakan NotebookUtils untuk bekerja dengan sistem file, mendapatkan variabel lingkungan, menggabungkan notebook, mengakses penyimpanan eksternal, dan bekerja dengan rahasia.

Gunakan notebookutils.help() untuk mencantumkan API yang tersedia dan mendapatkan bantuan dengan metode. Untuk informasi lebih lanjut, lihat dokumentasi NotebookUtils.

Utilitas data

Note

Saat ini, fitur tersebut sedang dalam pratinjau.

Gunakan notebookutils.data utilitas untuk terhubung ke sumber data. Kemudian, Anda dapat membaca dan melakukan query data menggunakan pernyataan T-SQL.

Jalankan perintah berikut untuk mendapatkan gambaran umum metode yang tersedia:

notebookutils.data.help()

Output:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = '', **kwargs)
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :param **kwargs Optional: Additional optional configuration. Supported keys include:
            - tds_endpoint : Allow user to specify a custom TDS endpoint to use for connection.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                df = conn.query(sql_query)
                display(df)
    
    help(method_name: str = '') -> None
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.10/lib/python3.10/site-packages/notebookutils/data.py

Mengkueri data dari Lakehouse

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Mengkueri data dari Gudang

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Mengkueri data dari database SQL

conn = notebookutils.data.connect_to_artifact("sqldb_name_or_id", "optional_workspace_id", "optional_sqldatabase_type") 
df = conn.query("SELECT * FROM sys.schemas;")

Note

Utilitas Data di NotebookUtils untuk saat ini hanya tersedia di notebook Python.

Menelusuri cuplikan kode

Anda dapat menemukan potongan kode Python yang berguna di tab Edit dengan memilih Telusuri potongan kode. Contoh Python baru kini tersedia. Untuk mulai menjelajahi notebook, pelajari dari potongan kode Python.

Cuplikan layar memperlihatkan tempat menelusuri cuplikan kode python.

Tautan semantik adalah fitur yang dapat Anda gunakan untuk menghubungkan model semantik dan Synapse Data Science. Notebook Python mendukung fitur ini secara asli. Insinyur BI dan pengembang Power BI dapat menggunakan tautan semantik untuk menghubungkan dan mengelola model semantik dengan mudah. Untuk mempelajari lebih lanjut, lihat dokumen publik.

Visualization

Selain menggambar bagan dengan pustaka, fungsi visualisasi bawaan memungkinkan Anda mengubah DataFrame menjadi visualisasi data berformat kaya. Gunakan fungsi display() pada dataframe untuk menghasilkan tampilan tabel dataframe kaya dan tampilan grafik.

Tangkapan layar yang menunjukkan pengalaman visualisasi di buku catatan Python.

Note

Notebook Python mempertahankan konfigurasi grafik. Setelah menjalankan ulang sel kode, jika skema dataframe target tidak berubah, grafik yang disimpan tetap ada.

Kode IntelliSense

Notebook Python juga menggunakan Pylance sebagai server bahasa. Untuk informasi lebih lanjut, lihat Tingkatkan pengembangan Python dengan Pylance.

Kemampuan ilmu data

Untuk mempelajari lebih lanjut tentang pengalaman data science dan AI di Fabric, lihat dokumentasi Data Science di Fabric. Artikel ini mencantumkan beberapa fitur utama ilmu data yang didukung secara native oleh notebook Python.

  • Data Wrangler: Data Wrangler adalah alat berbasis notebook yang menyediakan antarmuka imersif untuk analisis data eksploratif. Fitur ini menggabungkan tampilan data seperti kisi dengan statistik ringkasan dinamis, visualisasi bawaan, dan pustaka operasi pembersihan data umum. Layanan ini menyediakan pembersihan data, transformasi data, dan integrasi, yang mempercepat persiapan data dengan menggunakan Data Wrangler.

  • MLflow: Eksperimen pembelajaran mesin adalah unit utama organisasi dan kontrol untuk semua eksekusi pembelajaran mesin terkait. Eksekusi mengacu pada satu kali pengoperasian kode model.

  • Fabric Auto Logging: Synapse Data Science mencakup autologging, yang secara signifikan mengurangi jumlah kode yang diperlukan untuk secara otomatis mencatat parameter, metrik, dan item dari model machine learning selama pelatihan.

    Autologging memperluas kemampuan Pelacakan MLflow. Autologging dapat mengambil berbagai metrik, termasuk akurasi, kehilangan, skor F1, dan metrik kustom yang Anda tentukan. Dengan menggunakan autologging, pengembang dan ilmuwan data dapat dengan mudah melacak dan membandingkan performa model dan eksperimen yang berbeda tanpa pelacakan manual.

  • Copilot: Copilot for Data Engineering and Data Science notebooks adalah asisten AI yang membantu Anda menganalisis dan memvisualisasikan data. Copilot segera sadar konteks tanpa mengharuskan Anda memulai sesi. Ini memahami ruang kerja, skema Lakehouse terlampir, tabel, dan file, struktur buku catatan, dan status runtime, dan dapat beroperasi di seluruh alur kerja notebook.

    Copilot mendukung kemampuan multilangkah di seluruh notebook: dapat menghasilkan, merestrukturisasi, merangkum, dan memvalidasi kode di berbagai sel dan langkah di notebook Python. Anda dapat menggunakan panel obrolan Copilot dan perintah obrolan seperti /fix di buku catatan.

    Saat sel gagal, Perbaiki dengan Copilot menampilkan ringkasan kesalahan, analisis akar penyebab, dan perbaikan yang direkomendasikan, dengan opsi untuk menerapkan perubahan kode secara otomatis setelah menunjukkan perbedaan persetujuan. Anda juga dapat menggunakan perintah /fix dalam Copilot chat untuk diagnostik yang lebih terfokus pada sel tertentu atau seluruh notebook.

Batasan yang diketahui

  • Pengalaman menggunakan live pool tidak dijamin tersedia pada setiap eksekusi notebook Python. Waktu mulai sesi dapat memakan waktu hingga tiga menit jika proses notebook tidak masuk ke live pool. Seiring meningkatnya penggunaan notebook Python, metode pooling cerdas secara bertahap meningkatkan alokasi live pool untuk memenuhi permintaan.

  • Integrasi lingkungan tidak tersedia di notebook Python.

  • Waktu tunggu sesi yang diatur tidak tersedia.

  • Copilot telah meningkatkan kesadaran konteks dan bantuan untuk notebook Python, tetapi terkadang menyarankan kode Spark yang tidak dapat dieksekusi secara langsung dalam notebook Python. Pengalaman Fix with Copilot diterapkan untuk sel Python yang gagal; diagnostik tugas Spark tidak termasuk dalam cakupan untuk eksekusi Python murni.

  • Saat ini, Copilot di notebook Python belum sepenuhnya didukung di beberapa wilayah. Proses penerapan masih berlangsung. Tetap ikuti saat dukungan akan diluncurkan di lebih banyak wilayah.