Tworzenie potoku danych przy użyciu usługi Azure Data Factory, DevOps i uczenia maszynowego
Azure DevOps Services
Rozpocznij tworzenie potoku danych przy użyciu pozyskiwania danych, przekształcania danych i trenowania modelu.
Dowiedz się, jak pobierać dane z pliku CSV (wartości rozdzielane przecinkami) i zapisywać dane w usłudze Azure Blob Storage. Przekształć dane i zapisać je w obszarze przejściowym. Następnie wytrenuj model uczenia maszynowego przy użyciu przekształconych danych. Zapisz model w magazynie obiektów blob jako plik pickle języka Python.
Wymagania wstępne
Przed rozpoczęciem potrzebne są następujące elementy:
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywna organizacja usługi Azure DevOps. Utwórz konto w usłudze Azure Pipelines.
- Rola Administracja istrator połączeń usług w projekcie usługi Azure DevOps. Dowiedz się, jak dodać rolę Administracja istratora.
- Dane z pliku sample.csv.
- Dostęp do rozwiązania potoku danych w usłudze GitHub.
- Metodyka DevOps dla usługi Azure Databricks.
Aprowizuj zasoby platformy Azure
Zaloguj się w witrynie Azure Portal.
Z menu wybierz przycisk Cloud Shell . Po wyświetleniu monitu wybierz środowisko powłoki Bash .
Uwaga
Do utrwalania wszystkich plików tworzonych w usłudze Azure Cloud Shell potrzebny będzie zasób usługi Azure Storage. Po pierwszym otwarciu usługi Cloud Shell zostanie wyświetlony monit o utworzenie grupy zasobów, konta magazynu i udziału usługi Azure Files. Ta konfiguracja jest automatycznie używana dla wszystkich przyszłych sesji usługi Cloud Shell.
Wybieranie regionu platformy Azure
Region to co najmniej jedno centrum danych platformy Azure w lokalizacji geograficznej. Przykładami regionów są Wschodnie stany USA, Zachodnie stany USA i Europa Północna. Każdy zasób platformy Azure, w tym wystąpienie usługi App Service, jest przypisany do regionu.
Aby ułatwić uruchamianie poleceń, zacznij od wybrania domyślnego regionu. Po określeniu regionu domyślnego późniejsze polecenia używają tego regionu, chyba że określisz inny region.
W usłudze Cloud Shell uruchom następujące
az account list-locations
polecenie, aby wyświetlić listę regionów dostępnych w ramach subskrypcji platformy Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
Z kolumny
Name
w danych wyjściowych wybierz region, który jest blisko Ciebie. Na przykład wybierz lubasiapacific
westus2
.Uruchom polecenie
az config
, aby ustawić domyślny region. W poniższym przykładzie zastąp<REGION>
ciąg nazwą wybranego regionu.az config set defaults.location=<REGION>
Poniższy przykład ustawia
westus2
jako domyślny region.az config set defaults.location=westus2
Tworzenie zmiennych powłoki Bash
W usłudze Cloud Shell wygeneruj liczbę losową. Użyjesz tej liczby do utworzenia globalnie unikatowych nazw dla niektórych usług w następnym kroku.
resourceSuffix=$RANDOM
Utwórz globalnie unikatowe nazwy dla konta magazynu i magazynu kluczy. Następujące polecenia używają podwójnych cudzysłowów, które instruują powłokę Bash, aby interpolować zmienne przy użyciu składni wbudowanej.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"
Utwórz jeszcze jedną zmienną powłoki Bash, aby przechowywać nazwy i region grupy zasobów. W poniższym przykładzie zastąp ciąg
<REGION>
regionem wybranym dla regionu domyślnego.rgName='data-pipeline-cicd-rg' region='<REGION>'
Utwórz nazwy zmiennych dla wystąpień usług Azure Data Factory i Azure Databricks.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Tworzenie zasobów platformy Azure
Uruchom następujące
az group create
polecenie, aby utworzyć grupę zasobów przy użyciu poleceniargName
.az group create --name $rgName
Uruchom następujące
az storage account create
polecenie, aby utworzyć nowe konto magazynu.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Uruchom następujące
az storage container create
polecenie, aby utworzyć dwa kontenery irawdata
prepareddata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Uruchom następujące
az keyvault create
polecenie, aby utworzyć nowy magazyn kluczy.az keyvault create \ --name $keyVault \ --resource-group $rgName
Utwórz nową fabrykę danych przy użyciu interfejsu użytkownika portalu lub interfejsu wiersza polecenia platformy Azure:
- Nazwa:
data-factory-cicd-dev
- Wersja:
V2
- Grupa zasobów:
data-pipeline-cicd-rg
- Lokalizacja: Najbliższa lokalizacja
- Wyczyść zaznaczenie opcji Włącz usługę Git.
Dodaj rozszerzenie usługi Azure Data Factory.
az extension add --name datafactory
Uruchom następujące
az datafactory create
polecenie, aby utworzyć nową fabrykę danych.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Skopiuj identyfikator subskrypcji. Twoja fabryka danych będzie używać tego identyfikatora później.
- Nazwa:
Utwórz drugą fabrykę danych przy użyciu interfejsu użytkownika portalu lub interfejsu wiersza polecenia platformy Azure. Ta fabryka danych będzie używana do testowania.
- Nazwa:
data-factory-cicd-test
- Wersja:
V2
- Grupa zasobów:
data-pipeline-cicd-rg
- Lokalizacja: Najbliższa lokalizacja
- Wyczyść zaznaczenie opcji Włącz usługę GIT.
Uruchom następujące
az datafactory create
polecenie, aby utworzyć nową fabrykę danych na potrzeby testowania.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Skopiuj identyfikator subskrypcji. Twoja fabryka danych będzie używać tego identyfikatora później.
- Nazwa:
Dodaj nową usługę Azure Databricks:
- Grupa zasobów:
data-pipeline-cicd-rg
- Nazwa obszaru roboczego:
databricks-cicd-ws
- Lokalizacja: Najbliższa lokalizacja
Dodaj rozszerzenie usługi Azure Databricks, jeśli nie zostało jeszcze zainstalowane.
az extension add --name databricks
Uruchom następujące
az databricks workspace create
polecenie, aby utworzyć nowy obszar roboczy.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Skopiuj identyfikator subskrypcji. Usługa Databricks będzie używać tego identyfikatora później.
- Grupa zasobów:
Przekazywanie danych do kontenera magazynu
- W witrynie Azure Portal otwórz konto magazynu w
data-pipeline-cicd-rg
grupie zasobów. - Przejdź do pozycji Kontenery usługi Blob Service>.
prepareddata
Otwórz kontener.- Przekaż plik sample.csv.
Ustawianie magazynu Key Vault
Użyjesz usługi Azure Key Vault do przechowywania wszystkich informacji o połączeniu dla usług platformy Azure.
Tworzenie osobistego tokenu dostępu usługi Databricks
- W witrynie Azure Portal przejdź do usługi Databricks, a następnie otwórz obszar roboczy.
- W interfejsie użytkownika usługi Azure Databricks utwórz i skopiuj osobisty token dostępu.
Kopiowanie klucza konta i parametry połączenia dla konta magazynu
- Przejdź do swojego konta magazynu.
- Otwórz pozycję Klucze dostępu.
- Skopiuj pierwszy klucz i parametry połączenia.
Zapisywanie wartości w usłudze Key Vault
Utwórz trzy wpisy tajne:
- databricks-token:
your-databricks-pat
- Klucz magazynu:
your-storage-key
- Storage Połączenie String:
your-storage-connection
- databricks-token:
Uruchom następujące
az keyvault secret set
polecenie, aby dodać wpisy tajne do magazynu kluczy.az keyvault secret set --vault-name "$keyVault" --name "databricks-token" --value "your-databricks-pat" az keyvault secret set --vault-name "$keyVault" --name "StorageKey" --value "your-storage-key" az keyvault secret set --vault-name "$keyVault" --name "StorageConnectString" --value "your-storage-connection"
Importowanie rozwiązania potoku danych
- Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
- Przejdź do obszaru Repozytoria , a następnie zaimportuj rozwidlone wersje repozytorium GitHub. Aby uzyskać więcej informacji, zobacz Importowanie repozytorium Git do projektu.
Dodawanie połączenia usługi Azure Resource Manager
- Utwórz połączenie usługi Azure Resource Manager.
- Wybierz pozycję Jednostka usługi (automatyczna).
- Wybierz grupę zasobów data-pipeline-cicd-rg .
- Nadaj połączeniu
azure_rm_connection
usługi nazwę . - Wybierz pozycję Udziel uprawnień dostępu do wszystkich potoków. Aby wybrać tę opcję, musisz mieć rolę Połączenie ions usługi Administracja istrator.
Dodawanie zmiennych potoku
Utwórz nową grupę zmiennych o nazwie
datapipeline-vg
.Dodaj rozszerzenie Usługi Azure DevOps, jeśli nie zostało jeszcze zainstalowane.
az extension add --name azure-devops
Zaloguj się do organizacji usługi Azure DevOps.
az devops login --org https://dev.azure.com/<yourorganizationname>
az pipelines variable-group create --name datapipeline-vg -p <yourazuredevopsprojectname> --variables \ "LOCATION=$region" \ "RESOURCE_GROUP=$rgName" \ "DATA_FACTORY_NAME=$datafactorydev" \ "DATA_FACTORY_DEV_NAME=$datafactorydev" \ "DATA_FACTORY_TEST_NAME=$datafactorytest" \ "ADF_PIPELINE_NAME=DataPipeline" \ "DATABRICKS_NAME=$databricksname" \ "AZURE_RM_CONNECTION=azure_rm_connection" \ "DATABRICKS_URL=<URL copied from Databricks in Azure portal>" \ "STORAGE_ACCOUNT_NAME=$storageName" \ "STORAGE_CONTAINER_NAME=rawdata"
Utwórz drugą grupę zmiennych o nazwie
keys-vg
. Ta grupa będzie ściągać zmienne danych z usługi Key Vault.Wybierz pozycję Połącz wpisy tajne z usługi Azure Key Vault jako zmienne. Aby uzyskać więcej informacji, zobacz Łączenie wpisów tajnych z usługi Azure Key Vault.
Autoryzowanie subskrypcji platformy Azure.
Wybierz wszystkie dostępne wpisy tajne, które mają zostać dodane jako zmienne (
databricks-token
,StorageConnectString
,StorageKey
).
Konfigurowanie usług Azure Databricks i Azure Data Factory
Wykonaj kroki opisane w następnych sekcjach, aby skonfigurować usługi Azure Databricks i Azure Data Factory.
Tworzenie aplikacji testscope w usłudze Azure Databricks
- W witrynie Azure Portal przejdź do pozycji Właściwości magazynu>kluczy.
- Skopiuj nazwę DNS i identyfikator zasobu.
- W obszarze roboczym usługi Azure Databricks utwórz zakres wpisów tajnych o nazwie
testscope
.
Dodawanie nowego klastra w usłudze Azure Databricks
- W obszarze roboczym usługi Azure Databricks przejdź do pozycji Klastry.
- Wybierz pozycję Utwórz klaster.
- Nazwij i zapisz nowy klaster.
- Wybierz nową nazwę klastra.
- W ciągu adresu URL skopiuj zawartość między
/clusters/
i/configuration
. Na przykład w ciąguclusters/0306-152107-daft561/configuration
skopiuj wartość0306-152107-daft561
. - Zapisz ten ciąg, aby użyć go później.
Konfigurowanie repozytorium kodu w usłudze Azure Data Factory
- W usłudze Azure Data Factory przejdź do pozycji Tworzenie i monitorowanie. Aby uzyskać więcej informacji, zobacz Tworzenie fabryki danych.
- Wybierz pozycję Skonfiguruj repozytorium kodu, a następnie połącz repozytorium.
- Typ repozytorium: Azure DevOps Git
- Organizacja usługi Azure DevOps: Aktywne konto
- Nazwa projektu: Projekt potoku danych usługi Azure DevOps
- Nazwa repozytorium Git: użyj istniejącej.
- Wybierz gałąź główną do współpracy.
- Ustaw /azure-data-pipeline/factorydata jako folder główny.
- Gałąź do zaimportowania zasobu do: wybierz pozycję Użyj istniejącej i głównej.
Łączenie usługi Azure Data Factory z magazynem kluczy
- W interfejsie użytkownika witryny Azure Portal otwórz magazyn kluczy.
- Wybierz opcję Uzyskaj dostęp do zasad.
- Wybierz opcję Dodaj zasady dostępu.
- W obszarze Konfiguruj na podstawie szablonu wybierz pozycję Zarządzanie kluczami i wpisami tajnymi.
- W obszarze Wybierz podmiot zabezpieczeń wyszukaj nazwę fabryki danych deweloperskich i dodaj ją.
- Wybierz pozycję Dodaj , aby dodać zasady dostępu.
- Powtórz te kroki, aby dodać zasady dostępu dla testowej fabryki danych.
Aktualizowanie połączonej usługi magazynu kluczy w usłudze Azure Data Factory
- Przejdź do pozycji Zarządzaj połączonymi usługami>.
- Zaktualizuj magazyn kluczy platformy Azure, aby nawiązać połączenie z subskrypcją.
Aktualizowanie połączonej usługi magazynu w usłudze Azure Data Factory
- Przejdź do pozycji Zarządzaj połączonymi usługami>.
- Zaktualizuj wartość usługi Azure Blob Storage, aby nawiązać połączenie z subskrypcją.
Aktualizowanie połączonej usługi Azure Databricks w usłudze Azure Data Factory
- Przejdź do pozycji Zarządzaj połączonymi usługami>.
- Zaktualizuj wartość usługi Azure Databricks, aby nawiązać połączenie z subskrypcją.
- W polu Istniejący identyfikator klastra wprowadź zapisaną wcześniej wartość klastra.
Testowanie i publikowanie fabryki danych
- W usłudze Azure Data Factory przejdź do pozycji Edytuj.
- Otwórz
DataPipeline
. - Wybierz pozycję Zmienne.
- Sprawdź, czy element
storage_account_name
odnosi się do konta magazynu w witrynie Azure Portal. W razie potrzeby zaktualizuj wartość domyślną. Zapisz zmiany. - Wybierz pozycję Zweryfikuj, aby zweryfikować
DataPipeline
. - Wybierz pozycję Publikuj, aby opublikować zasoby fabryki danych w
adf_publish
gałęzi repozytorium.
Uruchamianie potoku ciągłej integracji/ciągłego wdrażania
Wykonaj następujące kroki, aby uruchomić potok ciągłej integracji i ciągłego dostarczania (CI/CD):
- Przejdź do strony Potoki . Następnie wybierz akcję, aby utworzyć nowy potok.
- Wybierz pozycję Azure Repos Git jako lokalizację kodu źródłowego.
- Po wyświetleniu listy repozytoriów wybierz repozytorium.
- Podczas konfigurowania potoku wybierz pozycję Istniejący plik YAML usługi Azure Pipelines. Wybierz plik YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Uruchom potok. Jeśli potok nie został wcześniej uruchomiony, może być konieczne nadanie uprawnień dostępu do zasobu podczas uruchamiania.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, usuń potok danych, wykonując następujące kroki:
- Usuń grupę
data-pipeline-cicd-rg
zasobów. - Usuń projekt usługi Azure DevOps.
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla