Tutorial: Menyiapkan batch produk data

Dalam tutorial ini, pelajari cara menyiapkan layanan produk data yang sudah disebarkan. Gunakan Azure Data Factory untuk mengintegrasikan dan mengatur data Anda, dan menggunakan Microsoft Purview untuk menemukan, mengelola, dan mengatur aset data.

Pelajari cara:

  • Membuat dan menyebarkan sumber daya yang diperlukan
  • Menetapkan peran dan izin akses
  • Koneksi sumber daya untuk integrasi data

Tutorial ini membantu Anda terbiasa dengan layanan yang disebarkan dalam <DMLZ-prefix>-dev-dp001 grup sumber daya produk data sampel. Rasakan bagaimana antarmuka layanan Azure satu sama lain dan langkah-langkah keamanan apa yang berlaku.

Saat menyebarkan komponen baru, Anda akan memiliki kesempatan untuk menyelidiki bagaimana Purview menghubungkan tata kelola layanan untuk membuat peta lanskap data Anda yang holistik dan terbaru. Hasilnya adalah penemuan data otomatis, klasifikasi data sensitif, dan silsilah data end-to-end.

Prasyarat

Sebelum Anda mulai menyiapkan batch produk data, pastikan Anda memenuhi prasyarat ini:

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure Anda hari ini.

  • Izin ke langganan Azure. Untuk menyiapkan Purview dan Azure Synapse Analytics untuk penyebaran, Anda harus memiliki peran Administrator Akses Pengguna atau peran Pemilik dalam langganan Azure. Anda akan mengatur lebih banyak penetapan peran untuk layanan dan perwakilan layanan dalam tutorial.

  • Sumber daya yang disebarkan. Untuk menyelesaikan tutorial, sumber daya ini harus sudah disebarkan di langganan Azure Anda:

  • Akun Microsoft Purview. Akun dibuat sebagai bagian dari penyebaran zona pendaratan manajemen data Anda.

  • Rutime integrasi yang dihost sendiri. Runtime dibuat sebagai bagian dari penyebaran zona pendaratan data Anda.

Catatan

Dalam tutorial ini, tempat penampung merujuk ke sumber daya prasyarat yang Anda sebarkan sebelum memulai tutorial:

  • <DMLZ-prefix>mengacu pada awalan yang Anda masukkan saat membuat penyebaran zona pendaratan manajemen data Anda.
  • <DLZ-prefix>mengacu pada awalan yang Anda masukkan saat membuat penyebaran zona pendaratan data Anda.
  • <DP-prefix>mengacu pada awalan yang Anda masukkan saat membuat penyebaran batch produk data Anda.

Membuat instans Azure SQL Database

Untuk memulai tutorial ini, buat dua contoh instans SQL Database. Anda akan menggunakan database untuk mensimulasikan sumber data CRM dan ERP di bagian selanjutnya.

  1. Di portal Azure, di kontrol global portal, pilih ikon Cloud Shell untuk membuka terminal Azure Cloud Shell. Pilih Bash untuk jenis terminal.

    Screenshot that shows the Cloud Shell icon in the Azure portal.

  2. Di Cloud Shell, jalankan skrip berikut. Skrip menemukan <DLZ-prefix>-dev-dp001 grup sumber daya dan <DP-prefix>-dev-sqlserver001 server Azure SQL yang ada di grup sumber daya. Kemudian, skrip membuat dua instans SQL Database di <DP-prefix>-dev-sqlserver001 server. Database telah diisi sebelumnya dengan data sampel AdventureWorks. Data mencakup tabel yang Anda gunakan dalam tutorial ini.

    Pastikan Anda mengganti subscription nilai tempat penampung parameter dengan ID langganan Azure Anda sendiri.

    # Azure SQL Database instances setup
    # Create the AdatumCRM and AdatumERP databases to simulate customer and sales data.
    
    # Use the ID for the Azure subscription you used to deployed the data product.
    az account set --subscription "<your-subscription-ID>"
    
    # Get the resource group for the data product.
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, 'dp001')==\`true\`].name")
    
    # Get the existing Azure SQL Database server name.
    sqlServerName=$(az sql server list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'sqlserver001')==\`true\`].name")
    
    # Create the first SQL Database instance, AdatumCRM, to create the customer's data source.
    az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumCRM --service-objective Basic --sample-name AdventureWorksLT
    
    # Create the second SQL Database instance, AdatumERP, to create the sales data source.
    az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumERP --service-objective Basic --sample-name AdventureWorksLT
    

Setelah skrip selesai berjalan, di <DP-prefix>-dev-sqlserver001 server Azure SQL, Anda memiliki dua instans SQL Database baru, AdatumCRM dan AdatumERP. Kedua database berada di tingkat komputasi Dasar. Database terletak di grup sumber daya yang sama dengan yang <DLZ-prefix>-dev-dp001 Anda gunakan untuk menyebarkan batch produk data.

Menyiapkan Purview untuk membuat katalog batch produk data

Selanjutnya, selesaikan langkah-langkah untuk menyiapkan Purview untuk membuat katalog batch produk data. Anda mulai dengan membuat perwakilan layanan. Kemudian, Anda menyiapkan sumber daya yang diperlukan dan menetapkan peran dan izin akses.

Membuat perwakilan layanan

  1. Di portal Azure, di kontrol global portal, pilih ikon Cloud Shell untuk membuka terminal Azure Cloud Shell. Pilih Bash untuk jenis terminal.

  2. Revisi skrip berikut:

    • subscriptionId Ganti nilai tempat penampung parameter dengan ID langganan Azure Anda sendiri.
    • spname Ganti nilai tempat penampung parameter dengan nama yang ingin Anda gunakan untuk perwakilan layanan Anda. Nama perwakilan layanan harus unik dalam langganan.

    Setelah Anda memperbarui nilai parameter, jalankan skrip di Cloud Shell.

    # Replace the parameter values with the name you want to use for your service principal name and your Azure subscription ID.
    spname="<your-service-principal-name>"
    subscriptionId="<your-subscription-id>"
    
    # Set the scope to the subscription.
    scope="/subscriptions/$subscriptionId"
    
    # Create the service principal.
    az ad sp create-for-rbac \
      --name $spname \
      --role "Contributor" \
      --scope $scope
    
  3. Periksa output JSON untuk hasil yang mirip dengan contoh berikut. Perhatikan atau salin nilai dalam output yang akan digunakan di langkah selanjutnya.

    {
      "appId": "<your-app-id>",
      "displayName": "<service-principal-display-name>",
      "name": "<your-service-principal-name>",
      "password": "<your-service-principal-password>",
      "tenant": "<your-tenant>"
    }
    

Menyiapkan akses dan izin perwakilan layanan

Dari output JSON yang dihasilkan pada langkah sebelumnya, dapatkan nilai yang dikembalikan berikut:

  • ID perwakilan layanan (appId)
  • kunci perwakilan layanan (password)

Perwakilan layanan harus memiliki izin berikut:

  • Peran Pembaca Data Blob Penyimpanan pada akun penyimpanan.
  • Izin Pembaca Data pada instans SQL Database.

Untuk menyiapkan perwakilan layanan dengan peran dan izin yang diperlukan, selesaikan langkah-langkah berikut.

Izin akun Azure Storage

  1. Di portal Azure, buka <DLZ-prefix>devraw akun Azure Storage. Di menu sumber daya, pilih Kontrol Akses (IAM).

    Screenshot that shows the storage account service principal permissions pane, with Access Control highlighted.

  2. Pilih Tambahkan Tambahkan>penetapan peran.

    Screenshot that shows the storage account service principal Access Control pane that shows how to add a role assignment.

  3. Di Tambahkan penetapan peran, pada tab Peran , cari dan pilih Pembaca Data Blob Penyimpanan. Kemudian, pilih Berikutnya.

    Screenshot that shows searching for Storage Blob Data Reader under Add role assignment.

  4. Di Anggota, pilih Pilih anggota.

    Screenshot that shows select members pane under add role assignment.

  5. Di Pilih anggota, cari nama perwakilan layanan yang Anda buat.

    Screenshot that shows how to search for a service principal name.

  6. Di hasil pencarian, pilih perwakilan layanan, lalu pilih Pilih.

    Screenshot that shows the results pane after searching for a service principal name.

  7. Untuk menyelesaikan penetapan peran, pilih Tinjau + tetapkan dua kali.

Ulangi langkah-langkah di bagian ini untuk akun penyimpanan yang tersisa:

  • <DLZ-prefix>devencur
  • <DLZ-prefix>devwork

Izin SQL Database

Untuk mengatur izin SQL Database, Anda menyambungkan ke komputer virtual Azure SQL dengan menggunakan editor kueri. Karena semua sumber daya berada di belakang titik akhir privat, Anda harus terlebih dahulu masuk ke portal Azure dengan menggunakan komputer virtual host Azure Bastion.

Di portal Azure, sambungkan ke komputer virtual yang disebarkan dalam <DMLZ-prefix>-dev-bastion grup sumber daya. Jika Anda tidak yakin cara menyambungkan ke komputer virtual dengan menggunakan layanan host Bastion, lihat Koneksi ke VM.

Untuk menambahkan perwakilan layanan sebagai pengguna dalam database, Anda mungkin perlu terlebih dahulu menambahkan diri Anda sebagai admin Microsoft Entra. Di langkah 1 dan 2, Anda menambahkan diri Anda sebagai admin Microsoft Entra. Dalam langkah 3 hingga 5, Anda memberikan izin perwakilan layanan ke database. Saat Anda masuk ke portal dari komputer virtual host Bastion, cari komputer virtual Azure SQL di portal Azure.

  1. Buka komputer <DP-prefix>-dev-sqlserver001 virtual Azure SQL. Di menu sumber daya di bawah Pengaturan, pilih ID Microsoft Entra.

    Screenshot that shows the Microsoft Entra pane in Azure SQL Database Server.

  2. Di bilah perintah, pilih Atur admin. Cari dan pilih akun Anda sendiri. Memilih Pilih.

    Screenshot that shows how to search for an account to make a user an admin.

  3. Di menu sumber daya, pilih database SQL, lalu pilih AdatumCRM database.

    Screenshot that shows a search for the correct database, with AdatumCRM highlighted.

  4. Di menu sumber daya AdatumCRM, pilih Editor kueri (pratinjau). Di bawah Autentikasi Direktori Aktif, pilih tombol Lanjutkan sebagai untuk masuk.

    Screenshot that shows how to sign in to the query editor by using Active Directory authentication.

  5. Di editor kueri, revisi pernyataan berikut untuk mengganti <service principal name> dengan nama perwakilan layanan yang Anda buat (misalnya, purview-service-principal). Kemudian, jalankan pernyataan.

    
    CREATE USER [<service principal name>] FROM EXTERNAL PROVIDER
    GO
    
    EXEC sp_addrolemember 'db_datareader', [<service principal name>]
    GO
    
    

    Screenshot that shows how to execute statements in the query editor.

Ulangi langkah 3 hingga 5 untuk AdatumERP database.

Menyiapkan brankas kunci

Purview membaca kunci perwakilan layanan dari instans Azure Key Vault. Brankas kunci dibuat dalam penyebaran zona pendaratan manajemen data Anda. Langkah-langkah berikut diperlukan untuk menyiapkan brankas kunci:

  1. Tambahkan kunci perwakilan layanan ke brankas kunci sebagai rahasia.

  2. Berikan izin Pembaca Rahasia MSI Purview di brankas kunci.

  3. Tambahkan brankas kunci ke Purview sebagai koneksi brankas kunci.

  4. Buat kredensial di Purview yang menunjuk ke rahasia brankas kunci.

Menambahkan izin untuk menambahkan rahasia ke brankas kunci

  1. Di portal Azure, buka layanan Azure Key Vault. Cari brankas <DMLZ-prefix>-dev-vault001 kunci.

    Screenshot that shows the Access Control Key Vault pane.

  2. Di menu sumber daya, pilih Kontrol akses (IAM). Di bilah perintah, pilih Tambahkan, lalu pilih Tambahkan penetapan peran.

    Screenshot that shows adding a role assignment in Purview.

  3. Pada tab Peran , cari lalu pilih Administrator Key Vault. Pilih Selanjutnya.

    Screenshot that shows how to search for the Key Vault Administrator role.

  4. Di Anggota, pilih Pilih anggota untuk menambahkan akun yang saat ini masuk.

    Screenshot that shows the Select members button highlighted.

  5. Di Pilih anggota, cari akun yang saat ini masuk. Pilih akun, lalu pilih Pilih.

    Screenshot that shows the select member search box.

  6. Untuk menyelesaikan proses penetapan peran, pilih Tinjau + tetapkan dua kali.

Menambahkan rahasia ke brankas kunci

Selesaikan langkah-langkah berikut untuk masuk ke portal Azure dari komputer virtual host Bastion.

  1. Di menu <DMLZ-prefix>-dev-vault001 sumber daya brankas kunci, pilih Rahasia. Di bilah perintah, pilih Buat/Impor untuk membuat rahasia baru.

    Screenshot that shows the key vault Generate/Import button highlighted.

  2. Di Buat rahasia, pilih atau masukkan nilai berikut:

    Pengaturan Tindakan
    Opsi unggah Pilih Manual.
    Nama Masukkan service-principal-secret.
    Nilai Masukkan kata sandi perwakilan layanan yang Anda buat sebelumnya.

    Screenshot that shows the key vault Create a secret pane.

    Catatan

    Langkah ini membuat rahasia bernama service-principal-secret di brankas kunci dengan menggunakan kunci kata sandi perwakilan layanan. Purview menggunakan rahasia untuk menyambungkan dan memindai sumber data. Jika Anda memasukkan kata sandi yang salah, Anda tidak akan dapat menyelesaikan bagian berikut.

  3. Pilih Buat.

Menyiapkan izin Purview di brankas kunci

Agar instans Purview membaca rahasia yang disimpan di brankas kunci, Anda harus menetapkan izin yang relevan kepada Purview di brankas kunci. Untuk mengatur izin, Anda menambahkan Identitas Terkelola Purview ke peran Pembaca Rahasia brankas kunci.

  1. Di menu <DMLZ-prefix>-dev-vault001 sumber daya brankas kunci, pilih Kontrol akses (IAM).

  2. Di bilah perintah, pilih Tambahkan, lalu pilih Tambahkan penetapan peran.

    Screenshot that shows the Access Control pane, with the add role assignment button highlighted.

  3. Di Peran, cari dan pilih Pengguna Rahasia Key Vault. Pilih Selanjutnya.

    Screenshot that shows the search for Key Vault Secret User pane.

  4. Di Anggota, pilih Pilih anggota.

    Screenshot that shows the add role assignment pane with the select member button highlighted.

  5. Cari <DMLZ-prefix>-dev-purview001 instans Purview. Pilih instans untuk menambahkan akun yang relevan. Lalu pilih Pilih.

    Screenshot that shows the search box for the Purview instance name.

  6. Untuk menyelesaikan proses penetapan peran, pilih Tinjau + tetapkan dua kali.

    Screenshot that shows how to complete a role assignment.

Menyiapkan koneksi brankas kunci di Purview

Untuk menyiapkan koneksi brankas kunci ke Purview, Anda harus masuk ke portal Azure dengan menggunakan komputer virtual host Azure Bastion.

  1. Di portal Azure, buka <DMLZ-prefix>-dev-purview001 akun Purview. Di bawah Memulai, di Buka Portal Tata Kelola Microsoft Purview, pilih Buka.

    Screenshot that shows the Microsoft Purview account overview.

  2. Di Purview Studio, pilih Kredensial Manajemen>. Di bilah perintah Kredensial , pilih Kelola koneksi Key Vault, lalu pilih Baru.

    Screenshot that shows the Manage Key Vault connections button.

  3. Di Koneksi brankas kunci baru, pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan <DMLZ-prefix-dev-vault001>.
    Langganan Azure Pilih langganan yang menghosting brankas kunci.
    Nama Key Vault Pilih brankas <kunci DMLZ-prefix-dev-vault001>.

    Screenshot that shows the new Key Vault connections pane.

  4. Pilih Buat.

  5. Di Konfirmasi pemberian akses, pilih Konfirmasi.

Membuat kredensial di Purview

Langkah terakhir untuk menyiapkan brankas kunci adalah membuat kredensial di Purview yang menunjuk ke rahasia yang Anda buat di brankas kunci untuk perwakilan layanan.

  1. Di Purview Studio, pilih Kredensial Manajemen>. Di bilah perintah Kredensial , pilih Baru.

    Screenshot that shows the new Purview Credentials pane.

  2. Di Kredensial baru, pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan purviewServicePrincipal.
    Metode autentikasi Pilih Perwakilan layanan.
    ID Penyewa Nilai secara otomatis diisi.
    ID perwakilan layanan Masukkan ID aplikasi atau ID klien perwakilan layanan.
    Koneksi Key Vault Pilih koneksi brankas kunci yang Anda buat di bagian sebelumnya.
    Nama rahasia Masukkan nama rahasia di brankas kunci (service-principal-secret).

    Screenshot that shows the new credentials form, with values highlighted.

  3. Pilih Buat.

Mendaftarkan sumber data

Pada titik ini, Purview dapat terhubung ke perwakilan layanan. Sekarang Anda dapat mendaftar dan menyiapkan sumber data.

Mendaftarkan akun Azure Data Lake Storage Gen2

Langkah-langkah berikut menguraikan proses untuk mendaftarkan akun penyimpanan Azure Data Lake Storage Gen2.

  1. Di Purview Studio, pilih ikon peta data, pilih Sumber, lalu pilih Daftar.

    Screenshot that shows the data map button highlighted in Purview.

  2. Di Daftarkan sumber, pilih Azure Data Lake Storage Gen2, lalu pilih Lanjutkan.

    Screenshot that shows the Azure Data Lake Storage Gen2 registration source.

  3. Di Daftarkan sumber (Azure Data Lake Storage Gen2), pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan <DLZ-prefix>dldevraw.
    Langganan Azure Pilih langganan yang menghosting akun penyimpanan.
    Nama akun penyimpanan Pilih akun penyimpanan yang relevan.
    Endpoint Nilai secara otomatis diisi berdasarkan akun penyimpanan yang dipilih.
    Pilih koleksi Pilih koleksi akar.

    Screenshot that shows the Register Azure Data Lake Storage Gen2 pane, with values highlighted.

  4. Pilih Daftar untuk membuat sumber data.

Ulangi langkah-langkah ini untuk akun penyimpanan berikut:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

Mendaftarkan instans SQL Database sebagai sumber data

  1. Di Purview Studio, pilih ikon Peta data, pilih Sumber, lalu pilih Daftar.

    Screenshot that shows the data map button highlighted in the Purview interface.

  2. Di Daftarkan sumber, pilih Azure SQL Database, lalu pilih Lanjutkan.

    Screenshot that shows the Azure SQL Database registration source.

  3. Di Daftarkan sumber (Azure SQL Database), pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan SQLDatabase (nama database yang dibuat di Membuat instans Azure SQL Database).
    Langganan Pilih langganan yang menghosting database.
    Nama Server Masukkan <DP-prefix-dev-sqlserver001>.

    Screenshot that shows the Register SQL Database form, with values highlighted.

  4. Pilih Daftarkan.

Menyiapkan pemindaian

Selanjutnya, siapkan pemindaian untuk sumber data.

Memindai sumber data Data Lake Storage Gen2

  1. Di Purview Studio, buka peta data. Pada sumber data, pilih ikon Pemindaian baru.

    Screenshot that shows how to set up a new Data Lake Storage Gen2 scan.

  2. Di panel pemindaian baru, pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan Scan_<DLZ-prefix>devraw.
    Koneksi melalui runtime integrasi Pilih runtime integrasi yang dihost sendiri yang disebarkan dengan zona pendaratan data.
    Informasi masuk Pilih perwakilan layanan yang Anda siapkan untuk Purview.

    Screenshot that shows the scan Data Lake Storage Gen2 credential form with values entered.

  3. Pilih Uji koneksi untuk memverifikasi konektivitas dan izin tersebut ada. Pilih Lanjutkan.

  4. Di Cakupan pemindaian Anda, pilih seluruh akun penyimpanan sebagai cakupan untuk pemindaian, lalu pilih Lanjutkan.

    Screenshot that shows the Scope your scan pane with storage accounts selected.

  5. Di Pilih seperangkat aturan pemindaian, pilih AdlsGen2, lalu pilih Lanjutkan.

    Screenshot that shows the Data Lake Storage Gen2 scan rule set selection.

  6. Di Atur pemicu pemindaian, pilih Sekali, lalu pilih Lanjutkan.

    Screenshot that shows the set a scan Trigger pane, with Once selected.

  7. Di Tinjau pemindaian Anda, tinjau pengaturan pemindaian. Pilih Simpan dan Jalankan untuk memulai pemindaian.

    Screenshot that shows reviewing your scan before you save and run it.

Ulangi langkah-langkah ini untuk akun penyimpanan berikut:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

Memindai sumber data SQL Database

  1. Di sumber data Azure SQL Database, pilih Pemindaian Baru.

    Screenshot that shows how to create a new SQL Database scan.

  2. Di panel pemindaian baru, pilih atau masukkan informasi berikut:

    Pengaturan Tindakan
    Nama Masukkan Scan_Database001.
    Koneksi melalui runtime integrasi Pilih Purview-SHIR.
    Nama database Pilih nama database.
    Informasi masuk Pilih kredensial brankas kunci yang Anda buat di Purview.
    Ekstraksi silsilah (pratinjau) Pilih Nonaktif.

    Screenshot that shows the scan credential form, with values entered.

  3. Pilih Uji koneksi untuk memverifikasi konektivitas dan izin tersebut ada. Pilih Lanjutkan.

  4. Pilih cakupan untuk pemindaian. Untuk memindai seluruh database, gunakan nilai default.

    Screenshot that shows how to set the scope for the scan to the whole database.

  5. Di Pilih seperangkat aturan pemindaian, pilih AzureSqlDatabase, lalu pilih Lanjutkan.

    Screenshot that shows the SQL Database scan rule set selection.

  6. Di Atur pemicu pemindaian, pilih Sekali, lalu pilih Lanjutkan.

    Screenshot that shows the set a scan to run pane with once selected.

  7. Di Tinjau pemindaian Anda, tinjau pengaturan pemindaian. Pilih Simpan dan Jalankan untuk memulai pemindaian.

Ulangi langkah-langkah ini untuk AdatumERP database.

Purview sekarang disiapkan untuk tata kelola data untuk sumber data terdaftar.

Menyalin data SQL Database ke Data Lake Storage Gen2

Dalam langkah-langkah berikut, Anda menggunakan alat Salin Data di Data Factory untuk membuat alur untuk menyalin tabel dari instans AdatumCRM SQL Database dan AdatumERP ke file CSV di <DLZ-prefix>devraw akun Data Lake Storage Gen2.

Lingkungan dikunci ke akses publik, jadi pertama-tama Anda perlu menyiapkan titik akhir privat. Untuk menggunakan titik akhir privat, Anda akan masuk ke portal Azure di browser lokal Anda, lalu menyambungkan ke komputer virtual host Bastion untuk mengakses layanan Azure yang diperlukan.

Buat Titik Akhir Privat

Untuk menyiapkan titik akhir privat untuk sumber daya yang diperlukan:

  1. <DMLZ-prefix>-dev-bastion Di grup sumber daya, pilih <DMLZ-prefix>-dev-vm001.

    Screenshot that shows the resource groups for connecting to the bastion host virtual machine.

  2. Di bilah perintah, pilih Koneksi dan pilih Bastion.

    Screenshot that shows the connect to bastion selection pane.

  3. Masukkan nama pengguna dan kata sandi untuk komputer virtual, lalu pilih Koneksi.

    Screenshot that shows the username and password entry pane.

  4. Di browser web komputer virtual, buka portal Azure. <DLZ-prefix>-dev-shared-integration Buka grup sumber daya dan buka <DLZ-prefix>-dev-integration-datafactory001 pabrik data.

    Screenshot that shows how to go to a different resource group to open Azure Data Factory.

  5. Di bawah Memulai, di Buka Azure Data Factory Studio, pilih Buka.

    Screenshot that shows how to open Azure Data Factory Studio.

  6. Di menu Data Factory Studio, pilih ikon Kelola (ikon terlihat seperti kotak alat persegi dengan kunci pas dicap di atasnya). Di menu sumber daya, pilih Titik akhir privat terkelola untuk membuat titik akhir privat yang diperlukan untuk menyambungkan Data Factory ke layanan Azure aman lainnya.

    Menyetujui permintaan akses untuk titik akhir privat dibahas di bagian selanjutnya. Setelah Anda menyetujui permintaan akses titik akhir privat, status persetujuannya disetujui, seperti dalam contoh <DLZ-prefix>devencur akun penyimpanan berikut.

    Screenshot that shows how to go to the Manage Private Endpoints pane.

  7. Sebelum Anda menyetujui koneksi titik akhir privat, pilih Baru. Masukkan Azure SQL untuk menemukan konektor Azure SQL Database yang Anda gunakan untuk membuat titik akhir privat terkelola baru untuk <DP-prefix>-dev-sqlserver001 komputer virtual Azure SQL. Komputer virtual berisi AdatumCRM database dan AdatumERP yang Anda buat sebelumnya.

  8. Di Titik akhir privat terkelola baru (Azure SQL Database), untuk Nama, masukkan data-product-dev-sqlserver001. Masukkan langganan Azure yang Anda gunakan untuk membuat sumber daya. Untuk Nama server, pilih <DP-prefix>-dev-sqlserver001 agar Anda bisa menyambungkannya dari pabrik data ini di bagian berikutnya.

    Screenshot that shows how to name the new private endpoint.

Menyetujui permintaan akses titik akhir privat

Untuk memberi Data Factory akses ke titik akhir privat untuk layanan yang diperlukan, Anda memiliki beberapa opsi:

  • Opsi 1: Di setiap layanan tempat Anda meminta akses, di portal Azure, buka opsi koneksi jaringan atau titik akhir privat layanan dan setujui permintaan akses ke titik akhir privat.

  • Opsi 2: Jalankan skrip berikut di Azure Cloud Shell dalam mode Bash untuk menyetujui semua permintaan akses ke titik akhir privat yang diperlukan sekaligus.

    
    # Storage managed private endpoint approval
    
    # devencur
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-storage')==\`true\`].name")
    storageAcctName=$(az storage account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'devencur')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved"
    
    # devraw
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-storage')==\`true\`].name")
    storageAcctName=$(az storage account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'devraw')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved"
    
    # SQL Database managed private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-dp001')==\`true\`].name")
    sqlServerName=$(az sql server list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'sqlserver001')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $sqlServerName --type Microsoft.Sql/servers -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $sqlServerName --type Microsoft.Sql/servers --description "Approved"
    
    # Key Vault private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-metadata')==\`true\`].name")
    keyVaultName=$(az keyvault list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'dev-vault001')==\`true\`].name")
    endPointConnectionID=$(az network private-endpoint-connection list -g $resourceGroupName -n $keyVaultName --type Microsoft.Keyvault/vaults -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].id")
    az network private-endpoint-connection approve -g $resourceGroupName --id $endPointConnectionID --resource-name $keyVaultName --type Microsoft.Keyvault/vaults --description "Approved"
    
    # Purview private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, 'dev-governance')==\`true\`].name")
    purviewAcctName=$(az purview account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, '-dev-purview001')==\`true\`].name")
    for epn in $(az network private-endpoint-connection list -g $resourceGroupName -n $purviewAcctName --type Microsoft.Purview/accounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    do
        az network private-endpoint-connection approve -g $resourceGroupName -n $epn --resource-name $purviewAcctName --type Microsoft.Purview/accounts --description "Approved"
    done
    
    

Contoh berikut menunjukkan bagaimana <DLZ-prefix>devraw akun penyimpanan mengelola permintaan akses titik akhir privat. Di menu sumber daya untuk akun penyimpanan, pilih Jaringan. Di bilah perintah, pilih Koneksi titik akhir privat.

Screenshot that shows how to go to the Private endpoint connections pane.

Untuk beberapa sumber daya Azure, Anda memilih Koneksi titik akhir privat di menu sumber daya. Contoh untuk server Azure SQL diperlihatkan dalam cuplikan layar berikut.

Untuk menyetujui permintaan akses titik akhir privat, di Koneksi titik akhir privat, pilih permintaan akses yang tertunda, lalu pilih Setujui:

Screenshot that shows to approve a private endpoint access request.

Setelah Anda menyetujui permintaan akses di setiap layanan yang diperlukan, mungkin perlu beberapa menit agar permintaan ditampilkan sebagai Disetujui di Titik akhir privat terkelola di Data Factory Studio. Bahkan jika Anda memilih Refresh di bilah perintah, status persetujuan mungkin basi selama beberapa menit.

Setelah Anda selesai menyetujui semua permintaan akses untuk layanan yang diperlukan, di Titik akhir privat terkelola, nilai Status persetujuan untuk semua layanan disetujui:

Screenshot that shows the private endpoint SQL connections as Approved.

Penetapan peran

Setelah Anda selesai menyetujui permintaan akses titik akhir privat, tambahkan izin peran yang sesuai untuk Data Factory untuk mengakses sumber daya ini:

  • Instans AdatumCRM SQL Database dan AdatumERP di <DP-prefix>-dev-sqlserver001 server Azure SQL
  • <DLZ-prefix>devrawAkun penyimpanan , <DLZ-prefix>devencur, dan<DLZ-prefix>devwork
  • Akun Purview <DMLZ-prefix>-dev-purview001

Komputer virtual Azure SQL

  1. Untuk menambahkan penetapan peran, mulailah dengan komputer virtual Azure SQL. <DMLZ-prefix>-dev-dp001 Di grup sumber daya, buka <DP-prefix>-dev-sqlserver001.

  2. Di menu sumber daya, pilih Kontrol akses (IAM). Di bilah perintah, pilih Tambahkan>penetapan peran.

  3. Pada tab Peran , pilih Kontributor, lalu pilih Berikutnya.

    Screenshot that shows the Contributor role selection pane.

  4. Di Anggota, untuk Tetapkan akses ke, pilih Identitas terkelola. Untuk Anggota, pilih Pilih Anggota.

    Screenshot that shows the select Managed Identity Members pane.

  5. Di Pilih identitas terkelola, pilih langganan Azure Anda. Untuk Identitas terkelola, pilih Data Factory (V2) untuk melihat pabrik data yang tersedia. Dalam daftar pabrik data, pilih Azure Data Factory <DLZ-prefix-dev-integration-datafactory001>. Memilih Pilih.

    Screenshot that shows the role assignment completion pane.

  6. Pilih Tinjau + Tetapkan dua kali untuk menyelesaikan proses.

Akun penyimpanan

Selanjutnya, tetapkan peran yang diperlukan ke <DLZ-prefix>devrawakun penyimpanan , <DLZ-prefix>devencur, dan <DLZ-prefix>devwork .

Untuk menetapkan peran, selesaikan langkah yang sama dengan yang Anda gunakan untuk membuat penetapan peran server Azure SQL. Tetapi, untuk peran tersebut, pilih Kontributor Data Blob Penyimpanan, bukan Kontributor.

Setelah Anda menetapkan peran untuk ketiga akun penyimpanan, Data Factory dapat terhubung dan mengakses akun penyimpanan.

Microsoft Purview

Langkah terakhir untuk menambahkan penetapan peran adalah menambahkan peran Kurator Data Purview di Microsoft Purview ke akun <DLZ-prefix>-dev-integration-datafactory001 identitas terkelola pabrik data. Selesaikan langkah-langkah berikut sehingga Data Factory dapat mengirim informasi aset katalog data dari beberapa sumber data ke akun Purview.

  1. Di grup <DMLZ-prefix>-dev-governancesumber daya , buka <DMLZ-prefix>-dev-purview001 akun Purview.

  2. Di Purview Studio, pilih ikon Peta data , lalu pilih Koleksi.

  3. Pilih tab Penetapan peran untuk koleksi. Di bawah Kurator data, tambahkan identitas terkelola untuk <DLZ-prefix>-dev-integration-datafactory001:

    Screenshot that shows how to add data curators to your Purview role assignment.

Koneksi Data Factory ke Purview

Izin diatur, dan Purview sekarang dapat melihat pabrik data. Langkah selanjutnya adalah menyambungkan <DMLZ-prefix>-dev-purview001 ke <DLZ-prefix>-dev-integration-datafactory001.

  1. Di Purview Studio, pilih ikon Manajemen , lalu pilih Data Factory. Pilih Baru untuk membuat koneksi Data Factory.

  2. Di panel Koneksi Data Factory Baru, masukkan langganan Azure Anda dan pilih <DLZ-prefix>-dev-integration-datafactory001 pabrik data. Pilih OK.

    Screenshot that shows what the Purview Studio pane looks like while selecting a new connection.

  3. <DLZ-prefix>-dev-integration-datafactory001 Di instans Data Factory Studio, di bawah Kelola>Azure Purview, refresh akun Azure Purview.

    Integrasi Data Lineage - Pipeline sekarang menunjukkan ikon hijau Koneksi.

    Screenshot that shows the Azure Data Factory Purview account pane with the data lineage pipeline connected.

Membuat alur ETL

Sekarang setelah <DLZ-prefix>-dev-integration-datafactory001 memiliki izin akses yang diperlukan, buat aktivitas salin di Data Factory untuk memindahkan data dari instans SQL Database ke <DLZ-prefix>devraw akun penyimpanan mentah.

Menggunakan alat Salin Data dengan AdatumCRM

Proses ini mengekstrak data pelanggan dari AdatumCRM instans SQL Database dan menyalinnya ke penyimpanan Data Lake Storage Gen2.

  1. Di Data Factory Studio, pilih ikon Penulis , lalu pilih Sumber Daya Pabrik. Pilih tanda plus (+) dan pilih Salin Alat data.

    Screenshot that shows the Copy Data tool under factory resources.

    Selesaikan setiap langkah dalam wizard alat Salin Data:

    1. Untuk membuat pemicu untuk menjalankan alur setiap 24 jam, pilih Jadwalkan.

      Screenshot that shows how to schedule a Trigger to run periodically in CRM.

    2. Untuk membuat layanan tertaut untuk menyambungkan pabrik data ini ke AdatumCRM instans SQL Database di <DP-prefix>-dev-sqlserver001 server (sumber), pilih Koneksi ion baru.

      Screenshot that shows connecting to the AdatumCRM database.

      Catatan

      Jika Anda mengalami kesalahan saat menyambungkan atau mengakses data di instans SQL Database atau akun penyimpanan, tinjau izin Anda di langganan Azure. Pastikan bahwa pabrik data memiliki kredensial yang diperlukan dan izin akses ke sumber daya yang bermasalah.

    3. Pilih ketiga tabel ini:

      • SalesLT.Address
      • SalesLT.Customer
      • SalesLT.CustomerAddress

      Screenshot that shows the select tables pane with tables highlighted.

    4. Buat layanan tertaut baru untuk mengakses <DLZ-prefix>devraw penyimpanan Azure Data Lake Storage Gen2 (tujuan).

      Screenshot that shows the raw storage connection.

    5. Telusuri folder di <DLZ-prefix>devraw penyimpanan dan pilih Data sebagai tujuan.

      Screenshot that shows the destination as raw data.

    6. Ubah akhiran nama file menjadi .csv dan gunakan opsi default lainnya.

      Screenshot that shows the file name suffix field with CSV entered.

    7. Buka panel berikutnya dan pilih Tambahkan header ke file.

      Screenshot that shows how to add a header to a file.

    8. Saat Anda menyelesaikan wizard, panel Penyebaran selesai terlihat mirip dengan contoh ini:

      Screenshot that shows the Copy Data tool deployment completed.

Alur baru tercantum dalam Alur.

Menjalankan alur

Proses ini membuat tiga file .csv di folder Data\CRM , satu untuk setiap tabel yang dipilih dalam AdatumCRM database.

  1. Ganti nama alur CopyPipeline_CRM_to_Raw.

  2. Ganti nama himpunan CRM_Raw_Storage data dan CRM_DB.

  3. Di bilah perintah Sumber Daya Pabrik, pilih Terbitkan semua.

  4. CopyPipeline_CRM_to_Raw Pilih alur, dan di bilah perintah alur, pilih Pemicu untuk menyalin tiga tabel dari SQL Database ke Data Lake Storage Gen2.

    Screenshot that shows how to use the trigger tool to copy data from the SQL Database to Data Lake Storage Gen2.

Menggunakan alat Salin Data dengan AdatumERP

Selanjutnya, ekstrak data dari AdatumERP database. Data mewakili data penjualan yang berasal dari sistem ERP.

  1. Masih di Data Factory Studio, buat alur baru dengan menggunakan alat Salin Data. Kali ini, Anda mengirim data penjualan dari AdatumERP ke <DLZ-prefix>devraw folder data akun penyimpanan, dengan cara yang sama seperti yang Anda lakukan dengan data CRM. Selesaikan langkah-langkah yang sama, tetapi gunakan AdatumERP database sebagai sumbernya.

    1. Buat jadwal untuk memicu setiap jam.

    2. Buat layanan tertaut ke AdatumERP instans SQL Database.

      Screenshot that shows the Adatum ERP connection pane completed.

    3. Pilih tujuh tabel ini:

      • SalesLT.Product
      • SalesLT.ProductCategory
      • SalesLT.ProductDescription
      • SalesLT.ProductModel
      • SalesLT.ProductModelProductDescription
      • SalesLT.SalesOrderDetail
      • SalesLT.SalesOrderHeader

      Screenshot that shows Adatum ERP Table options.

    4. Gunakan layanan tertaut yang ada ke <DLZ-prefix>devraw akun penyimpanan dan atur ekstensi file ke .csv.

      Screenshot that shows a raw storage account with the file extension set to CSV.

    5. Pilih Tambahkan header ke file.

      Screenshot that shows adding a header to a file under File format settings.

    6. Selesaikan wizard lagi dan ganti nama alur CopyPipeline_ERP_to_DevRaw. Kemudian, di bilah perintah, pilih Terbitkan semua. Terakhir, jalankan pemicu pada alur yang baru dibuat ini untuk menyalin tujuh tabel yang dipilih dari SQL Database ke Data Lake Storage Gen2.

Saat Anda menyelesaikan langkah-langkah ini, 10 file CSV berada di <DLZ-prefix>devraw penyimpanan Data Lake Storage Gen2. Di bagian berikutnya, Anda mengumpulkan file di <DLZ-prefix>devencur penyimpanan Data Lake Storage Gen2.

Mengumpulkan data di Data Lake Storage Gen2

Setelah Anda selesai membuat 10 file CSV di penyimpanan Data Lake Storage Gen2 mentah <DLZ-prefix>devraw , ubah file-file ini sesuai kebutuhan saat Anda menyalinnya ke penyimpanan Data Lake Storage Gen2 yang dikumpulkan <DLZ-prefix>devencur .

Lanjutkan menggunakan Azure Data Factory untuk membuat alur baru ini untuk mengatur pergerakan data.

Kurasi CRM ke data pelanggan

Buat aliran data yang mendapatkan file CSV di folder Data\CRM di <DLZ-prefix>devraw. Ubah file dan salin file yang diubah dalam format file .parquet ke folder Data\Customer di <DLZ-prefix>devencur.

  1. Di Azure Data Factory, buka pabrik data dan pilih Orkestrasi.

    Screenshot that shows the Orchestrate button in Azure Data Factory.

  2. Di Umumnya, beri nama alur Pipeline_transform_CRM.

  3. Di panel Aktivitas, perluas Pindahkan dan Transformasi. Seret aktivitas aliran data dan letakkan di kanvas alur.

    Screenshot that shows the Activities pane and Move and transform highlighted.

  4. Di Menambahkan Aliran Data, pilih Buat aliran data baru dan beri nama aliran CRM_to_Customerdata . Pilih Selesai.

    Catatan

    Di bilah perintah kanvas alur, aktifkan Debug Aliran data. Dalam mode debug, Anda dapat menguji logika transformasi secara interaktif terhadap kluster Apache Spark langsung. Kluster aliran data membutuhkan waktu 5 hingga 7 menit untuk pemanasan. Kami menyarankan agar Anda mengaktifkan penelusuran kesalahan sebelum memulai pengembangan aliran data.

    Screenshot that shows the Open Data Flow button.

    Setelah selesai memilih opsi dalam CRM_to_Customer aliran data, Pipeline_transform_CRM alur terlihat mirip dengan contoh ini:

    Screenshot that shows the pipeline transform CRM.

    Aliran data terlihat seperti contoh ini:

    Screenshot that shows the CRM to Customer data flow.

  5. Selanjutnya, ubah pengaturan ini dalam aliran data untuk CRMAddress sumber:

    1. Buat himpunan data baru dari Data Lake Storage Gen2. Gunakan format DelimitedText. Beri nama himpunan DevRaw_CRM_Addressdata .

    2. Koneksi layanan tertaut ke <DLZ-prefix>devraw.

    3. Data\CRM\SalesLTAddress.csv Pilih file sebagai sumbernya.

  6. Ubah pengaturan ini dalam aliran data untuk sink yang dipasangkan CustAddress :

    1. Buat himpunan data baru bernama DevEncur_Cust_Address.

    2. Pilih folder Data\Customer di <DLZ-prefix>devencur sebagai sink.

    3. Di bawah Pengaturan\Output ke satu file, konversikan file ke Address.parquet.

Untuk sisa konfigurasi aliran data, gunakan informasi dalam tabel berikut untuk setiap komponen. Perhatikan bahwa CRMAddress dan CustAddress merupakan dua baris pertama. Gunakan sebagai contoh untuk objek lain.

Item yang tidak ada dalam salah satu tabel berikut ini adalah pengubah RemovePasswords skema. Cuplikan layar sebelumnya menunjukkan bahwa item ini berada di antara CRMCustomer dan CustCustomer. Untuk menambahkan pengubah skema ini, buka Pilih pengaturan dan hapus PasswordHash dan PasswordSalt.

CRMCustomer mengembalikan skema 15 kolom dari file .crv. CustCustomer hanya menulis 13 kolom setelah pengubah skema menghapus dua kolom kata sandi.

Tabel lengkap

Nama Tipe objek Nama himpunan data Penyimpanan data Jenis format Layanan tertaut File atau folder
CRMAddress sumber DevRaw_CRM_Address Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTAddress.csv
CustAddress sink DevEncur_Cust_Address Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\Address.parquet
CRMCustomer sumber DevRaw_CRM_Customer Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTCustomer.csv
CustCustomer sink DevEncur_Cust_Customer Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\Customer.parquet
CRMCustomerAddress sumber DevRaw_CRM_CustomerAddress Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTCustomerAddress.csv
CustCustomerAddress sink DevEncur_Cust_CustomerAddress Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\CustomerAddress.parquet

Tabel ERP ke Penjualan

Sekarang, ulangi langkah serupa untuk membuat Pipeline_transform_ERP alur, membuat ERP_to_Sales aliran data untuk mengubah file .csv di folder Data\ERP di <DLZ-prefix>devraw, dan salin file yang diubah ke folder Data\Sales di <DLZ-prefix>devencur.

Dalam tabel berikut, Anda akan menemukan objek yang akan dibuat dalam ERP_to_Sales aliran data dan pengaturan yang perlu Anda ubah untuk setiap objek. Setiap file .csv dipetakan ke sink .parquet .

Nama Tipe objek Nama himpunan data Penyimpanan data Jenis format Layanan tertaut File atau folder
ERPProduct sumber DevRaw_ERP_Product Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProduct.csv
SalesProduct sink DevEncur_Sales_Product Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\Product.parquet
ERPProductCategory sumber DevRaw_ERP_ProductCategory Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductCategory.csv
SalesProductCategory sink DevEncur_Sales_ProductCategory Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductCategory.parquet
ERPProductDescription sumber DevRaw_ERP_ProductDescription Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductDescription.csv
SalesProductDescription sink DevEncur_Sales_ProductDescription Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductDescription.parquet
ERPProductModel sumber DevRaw_ERP_ProductModel Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductModel.csv
SalesProductModel sink DevEncur_Sales_ProductModel Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductModel.parquet
ERPProductModelProductDescription sumber DevRaw_ERP_ProductModelProductDescription Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductModelProductDescription.csv
SalesProductModelProductDescription sink DevEncur_Sales_ProductModelProductDescription Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductModelProductDescription.parquet
ERPProductSalesOrderDetail sumber DevRaw_ERP_ProductSalesOrderDetail Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductSalesOrderDetail.csv
SalesProductSalesOrderDetail sink DevEncur_Sales_ProductSalesOrderDetail Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductSalesOrderDetail.parquet
ERPProductSalesOrderHeader sumber DevRaw_ERP_ProductSalesOrderHeader Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductSalesOrderHeader.csv
SalesProductSalesOrderHeader sink DevEncur_Sales_ProductSalesOrderHeader Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductSalesOrderHeader.parquet

Langkah berikutnya