Condividi tramite


Inserire dati nel warehouse usando l'istruzione COPY

Si applica a:✅ Magazzino in Microsoft Fabric

L'istruzione COPY è il modo principale per inserire i dati nelle tabelle Warehouse. COPY esegue l'inserimento di dati ad alta velocità effettiva da un account di archiviazione di Azure esterno, con la flessibilità necessaria per configurare le opzioni di formato del file di origine, un percorso in cui archiviare le righe rifiutate, ignorare le righe di intestazione e altre opzioni.

Questa esercitazione illustra esempi di inserimento dati per una tabella Warehouse usando l'istruzione T-SQL COPY . Usa i dati di esempio di Bing COVID-19 dei set di dati aperti di Azure. Per informazioni dettagliate su questi dati, inclusi i relativi diritti di utilizzo e schema, vedere Bing COVID-19.

Annotazioni

Warehouse consente anche di usare l'istruzione BULK INSERT per l'inserimento dati. L'istruzione COPY INTO è l'istruzione consigliata per il nuovo codice di inserimento, mentre l'istruzione BULK INSERT consente di riutilizzare il codice usato in SQL Server o nel database SQL di Azure.

Per altre informazioni sull'istruzione T-SQL COPY , inclusi altri esempi e la sintassi completa, vedere COPY (Transact-SQL).

Crea una tabella

Prima di usare l'istruzione COPY, è necessario creare la tabella di destinazione. Per creare la tabella di destinazione per questo esempio, seguire questa procedura:

  1. Nell'area di lavoro di Microsoft Fabric, trova e apri il tuo magazzino.

  2. Passare alla scheda Home e selezionare Nuova query SQL.

    Screenshot della sezione superiore dell'area di lavoro dell'utente che mostra il pulsante Nuova query SQL.

  3. Per creare la tabella usata come destinazione in questa esercitazione, eseguire il codice seguente:

        CREATE TABLE dbo.TaxiTrips
        (
            doLocationId            varchar(MAX)      NULL,
            endLat                  float             NULL,
            endLon                  float             NULL,
            extra                   float             NULL,
            fareAmount              float             NULL,
            improvementSurcharge    varchar(MAX)      NULL,
            mtaTax                  float             NULL,
            passengerCount          int               NULL,
            paymentType             varchar(MAX)      NULL,
            puLocationId            varchar(MAX)      NULL,
            puMonth                 int               NULL,
            puYear                  int               NULL,
            rateCodeId              int               NULL,
            startLat                float             NULL,
            startLon                float             NULL,
            storeAndFwdFlag         varchar(1)        NULL,
            tipAmount               float             NULL,
            tollsAmount             float             NULL,
            totalAmount             float             NULL,
            tpepDropoffDateTime     datetime2(6)      NULL,
            tpepPickupDateTime      datetime2(6)      NULL,
            tripDistance            float             NULL,
            vendorId_str            varchar(MAX)      NULL,
            vendorId_lpep           int               NULL
        );
    

Inserire dati Parquet usando l'istruzione COPY

In questo esempio i dati vengono caricati usando un'origine Parquet. Poiché questi dati sono disponibili pubblicamente e non richiedono l'autenticazione, è possibile copiare facilmente questi dati specificando l'origine e la destinazione. Non sono necessari dettagli di autenticazione. È sufficiente specificare l'argomento FILE_TYPE .

Usare il codice seguente per eseguire l'istruzione COPY con un'origine Parquet:

COPY INTO dbo.TaxiTrips
FROM 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow'
WITH (
    FILE_TYPE = 'PARQUET'
)

Controllare i risultati

L'istruzione COPY viene completata inserendo 1.571.671.152 righe nella nuova tabella. È possibile verificare che l'operazione sia stata eseguita correttamente eseguendo una query che restituisce il numero totale di righe nella tabella:

SELECT COUNT_BIG(*) FROM dbo.TaxiTrips;

Opzioni di inserimento dati

Altri modi per inserire i dati nel warehouse includono: