Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tip
Microsoft Fabric Data Warehouse är ett relationslager i företagsskala på en datasjögrund med en framtidsklar arkitektur, inbyggd AI och nya funktioner. Om du är nybörjare på datalager börjar du med Fabric Data Warehouse. Befintliga dedicerade SQL-poolarbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.
I den här snabbstarten massinläser du data i din dedikerade SQL-pool med hjälp av den enkla och flexibla COPY-instruktionen för datainmatning med högt dataflöde. COPY-instruktionen är det rekommenderade inläsningsverktyget eftersom det gör att du smidigt och flexibelt kan läsa in data genom att tillhandahålla funktioner för att:
- Tillåt användare med lägre privilegier att läsa in utan att behöva strikta KONTROLL-behörigheter i informationslagret
- Använd bara en enda T-SQL-instruktion utan att behöva skapa några ytterligare databasobjekt
- Utnyttja en finare behörighetsmodell utan att exponera lagringskontonycklar med hjälp av SAS (Share Access Signatures)
- Ange ett annat lagringskonto för ERRORFILE-positionen (REJECTED_ROW_LOCATION)
- Anpassa standardvärden för varje målkolumn och ange källdatafält som ska läsas in i specifika målkolumner
- Ange en anpassad radavgränsare för CSV-filer
- Escape-sträng, fält och radavgränsare för CSV-filer
- Utnyttja SQL Server-datumformat för CSV-filer
- Ange jokertecken och flera filer i lagringsplatsens sökväg.
Förutsättningar
Den här snabbstarten förutsätter att du redan har en dedikerad SQL-pool. Om en dedikerad SQL-pool inte har skapats använder du snabbstarten Skapa och ansluta – portalen .
Konfigurera nödvändiga behörigheter
-- List the permissions for your user
select princ.name
, princ.type_desc
, perm.permission_name
, perm.state_desc
, perm.class_desc
, object_name(perm.major_id)
from sys.database_principals princ
left join
sys.database_permissions perm
on perm.grantee_principal_id = princ.principal_id
where name = '<yourusername>';
--Make sure your user has the permissions to CREATE tables in the [dbo] schema
GRANT CREATE TABLE TO <yourusername>;
GRANT ALTER ON SCHEMA::dbo TO <yourusername>;
--Make sure your user has ADMINISTER DATABASE BULK OPERATIONS permissions
GRANT ADMINISTER DATABASE BULK OPERATIONS TO <yourusername>
--Make sure your user has INSERT permissions on the target table
GRANT INSERT ON <yourtable> TO <yourusername>
Skapa måltabellen
I det här exemplet läser vi in data från new york-taxidatauppsättningen. Vi läser in en tabell med namnet Trip som representerar taxiresor som görs inom ett enda år. Kör följande för att skapa tabellen:
CREATE TABLE [dbo].[Trip]
(
[DateID] int NOT NULL,
[MedallionID] int NOT NULL,
[HackneyLicenseID] int NOT NULL,
[PickupTimeID] int NOT NULL,
[DropoffTimeID] int NOT NULL,
[PickupGeographyID] int NULL,
[DropoffGeographyID] int NULL,
[PickupLatitude] float NULL,
[PickupLongitude] float NULL,
[PickupLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DropoffLatitude] float NULL,
[DropoffLongitude] float NULL,
[DropoffLatLong] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[PassengerCount] int NULL,
[TripDurationSeconds] int NULL,
[TripDistanceMiles] float NULL,
[PaymentType] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[FareAmount] money NULL,
[SurchargeAmount] money NULL,
[TaxAmount] money NULL,
[TipAmount] money NULL,
[TollsAmount] money NULL,
[TotalAmount] money NULL
)
WITH
(
DISTRIBUTION = ROUND_ROBIN,
CLUSTERED COLUMNSTORE INDEX
);
Kör COPY-instruktionen
Kör följande COPY-instruktion som läser in data från Azure Blob Storage-kontot i tabellen Trip.
COPY INTO [dbo].[Trip] FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013/'
WITH (
FIELDTERMINATOR='|',
ROWTERMINATOR='0x0A'
) OPTION (LABEL = 'COPY: dbo.trip');
Övervaka belastningen
Kontrollera om belastningen fortsätter genom att regelbundet köra följande fråga:
SELECT r.[request_id]
, r.[status]
, r.resource_class
, r.command
, sum(bytes_processed) AS bytes_processed
, sum(rows_processed) AS rows_processed
FROM sys.dm_pdw_exec_requests r
JOIN sys.dm_pdw_dms_workers w
ON r.[request_id] = w.request_id
WHERE [label] = 'COPY: dbo.trip' and session_id <> session_id() and type = 'WRITER'
GROUP BY r.[request_id]
, r.[status]
, r.resource_class
, r.command;
Nästa steg
- Metodtips för datainläsning finns i Metodtips för inläsning av data.
- Information om hur du hanterar resurser för dina datainläsningar finns i Arbetsbelastningsisolering.