Dela via


AzCopy

AzCopy är ett kraftfullt kommandoradsverktyg som är utformat för att underlätta överföring av data mellan Azure Storage-konton. Eftersom Microsoft OneLake har stöd för samma API:er, SDK:er och verktyg som Azure Storage kan du också använda AzCopy för att läsa in data till och från OneLake. Den här artikeln hjälper dig att använda AzCopy med OneLake, från att kopiera data mellan artefakter till att ladda upp eller ladda ned data.

Varför ska jag använda AzCopy och OneLake?

AzCopy är optimerat för åtgärder på dataplanet i stor skala och storskalig dataförflyttning. När du kopierar data mellan lagringskonton (inklusive OneLake) flyttas data direkt från lagringsservern till lagringsservern, vilket minimerar prestandaflaskhalsar. AzCopy är också lättanvänt och tillförlitligt, med inbyggda mekanismer för att hantera nätverksavbrott och återförsök. Med AzCopy är det enkelt att ladda upp data till OneLake eller läsa in data från befintliga källor direkt till dina objekt i Fabric!

Komma igång

Om du inte har använt AzCopy tidigare kan du lära dig hur du laddar ned och kommer igång med AzCopy på Kom igång med AzCopy.

När du använder AzCopy med OneLake finns det några viktiga punkter att komma ihåg:

  1. Lägg till "fabric.microsoft.com" som en betrodd domän med parametern--trusted-microsoft-suffix.
  2. Välj prenumerationen för ditt ursprungliga Azure Storage-konto när du loggar in med ditt Microsoft Entra-ID, eftersom OneLake bara bryr sig om klientorganisationen.
  3. Använd dubbla citattecken när du använder AzCopy i kommandotolken och enkla citattecken i PowerShell.

Exemplen i den här artikeln förutsätter också att ditt Microsoft Entra-ID har rätt behörighet att komma åt både källan och målen.

Slutligen behöver du minst en källa och ett mål för dataflytten – exemplen på den här sidan använder två Fabric Lakehouses och ett ADLS-konto.

Exempel: Kopiera data mellan Fabric-arbetsutrymmen

Använd det här exemplet om du vill kopiera en fil från en lakehouse på en arbetsyta till en annan arbetsyta med hjälp av kommandot azcopy copy . Kom ihåg att autentisera först genom att köra azcopy login först.

Syntax


azcopy copy "https://onelake.dfs.fabric.microsoft.com/<source-workspace-name>/<source-item-name>/Files/<source-file-path>" "https://onelake.dfs.fabric.microsoft.com/<destination-workspace-name>/<destination-item-name>/Files/<destination-file-path>" --trusted-microsoft-suffixes "fabric.microsoft.com" 

Kopieringsåtgärden är synkron, så när kommandot returnerar kopieras alla filer.

Exempel: Kopiera data från ADLS till OneLake med signaturer för delad åtkomst (SAS)

En signatur för delad åtkomst (SAS) ger kortsiktig, delegerad åtkomst till Azure Storage och OneLake, och är ett bra alternativ för att ge verktyg eller användare tillfällig åtkomst till lagring för engångsuppladdning eller nedladdningar. En SAS är också ett bra alternativ om Azure Storage-kontot finns i en annan klientorganisation än din OneLake, eftersom Entra-auktorisering inte fungerar om klientorganisationen är annorlunda.

Det här exemplet använder en unik SAS-token för att autentisera till både Azure Storage och OneLake. Mer information om hur du genererar och använder SAS-token med Azure Storage och OneLake finns på följande sidor:

Anmärkning

När du använder en SAS-token för att autentisera till OneLake i AzCopy måste du ange parametern '''-s2s-preserve-access-tier' till false.


azcopy copy "https://<account-name>.blob.core.windows.net/<source-container-name>/<source-file-path>?<blob-sas-token>" "https://onelake.dfs.fabric.microsoft.com/<destination-workspace-name>/<destination-item-name>/Files/<destination-file-path>?<onelake-sas-token>" --trusted-microsoft-suffixes "fabric.microsoft.com" --s2s-preserve-access-tier=false

Begränsningar

Eftersom OneLake är en hanterad datasjö stöds inte vissa åtgärder med AzCopy. Du kan till exempel inte använda AzCopy för att flytta eller kopiera hela objekt eller arbetsytor. Skapa i stället det nya objektet på målplatsen med hjälp av en Infrastrukturmiljö (som portalen) och använd sedan AzCopy för att flytta innehållet i det befintliga objektet till det nya objektet.