Anteckning
Å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.
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.