Πρόσληψη δεδομένων στην Αποθήκη σας χρησιμοποιώντας την πρόταση COPY
Ισχύει για:✅ Warehouse στο Microsoft Fabric
Η πρόταση COPY είναι ο κύριος τρόπος για την πρόσληψη δεδομένων σε πίνακες Αποθήκης. Η COPY εκτελεί πρόσληψη δεδομένων υψηλής ταχύτητας από έναν εξωτερικό λογαριασμό υπηρεσίας αποθήκευσης Azure, με την ευελιξία να ρυθμίσει τις παραμέτρους των επιλογών μορφοποίησης αρχείου προέλευσης, μια θέση για την αποθήκευση των γραμμών που απορρίφθηκαν, την παράλειψη γραμμών κεφαλίδας και άλλες επιλογές.
Αυτή η εκμάθηση εμφανίζει παραδείγματα πρόσληψης δεδομένων για έναν πίνακα Αποθήκης χρησιμοποιώντας την πρόταση T-SQL COPY. Χρησιμοποιεί το δείγμα δεδομένων Bing COVID-19 από τα Ανοιχτά σύνολα δεδομένων Azure. Για λεπτομέρειες σχετικά με αυτά τα δεδομένα, συμπεριλαμβανομένου του σχήματος και των δικαιωμάτων χρήσης τους, ανατρέξτε στο θέμα Bing COVID-19.
Σημείωμα
Για να μάθετε περισσότερα σχετικά με την πρόταση T-SQL COPY, συμπεριλαμβανομένων περισσότερων παραδειγμάτων και της πλήρους σύνταξης, ανατρέξτε στο θέμα COPY (Transact-SQL).
Δημιουργία πίνακα
Προτού χρησιμοποιήσετε την πρόταση COPY, πρέπει να δημιουργηθεί ο πίνακας προορισμού. Για να δημιουργήσετε τον πίνακα προορισμού για αυτό το δείγμα, ακολουθήστε τα παρακάτω βήματα:
Στον χώρο εργασίας σας Microsoft Fabric, βρείτε και ανοίξτε την αποθήκη σας.
Μεταβείτε στην Αρχική καρτέλα και επιλέξτε Νέο ερώτημα SQL.
Για να δημιουργήσετε τον πίνακα που χρησιμοποιείται ως προορισμός σε αυτή την εκμάθηση, εκτελέστε τον ακόλουθο κώδικα:
CREATE TABLE [dbo].[bing_covid-19_data] ( [id] [int] NULL, [updated] [date] NULL, [confirmed] [int] NULL, [confirmed_change] [int] NULL, [deaths] [int] NULL, [deaths_change] [int] NULL, [recovered] [int] NULL, [recovered_change] [int] NULL, [latitude] [float] NULL, [longitude] [float] NULL, [iso2] [varchar](8000) NULL, [iso3] [varchar](8000) NULL, [country_region] [varchar](8000) NULL, [admin_region_1] [varchar](8000) NULL, [iso_subdivision] [varchar](8000) NULL, [admin_region_2] [varchar](8000) NULL, [load_time] [datetime2](6) NULL );
Πρόσληψη δεδομένων Parquet με χρήση της πρότασης COPY
Στο πρώτο παράδειγμα, φορτώνουμε δεδομένα χρησιμοποιώντας μια προέλευση Parquet. Δεδομένου ότι αυτά τα δεδομένα είναι δημόσια διαθέσιμα και δεν απαιτούν έλεγχο ταυτότητας, μπορείτε εύκολα να αντιγράψετε αυτά τα δεδομένα καθορίζοντας την προέλευση και τον προορισμό. Δεν απαιτούνται λεπτομέρειες ελέγχου ταυτότητας. Το μόνο που χρειάζεται είναι να καθορίσετε το FILE_TYPE
όρισμα.
Χρησιμοποιήστε τον παρακάτω κώδικα για να εκτελέσετε την πρόταση COPY με μια προέλευση Parquet:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
FILE_TYPE = 'PARQUET'
);
Πρόσληψη δεδομένων CSV με χρήση της πρότασης COPY και παράλειψη γραμμής κεφαλίδας
Είναι σύνηθες για τα αρχεία τιμών διαχωρισμένων με κόμματα (CSV) να έχουν μια γραμμή κεφαλίδας που παρέχει τα ονόματα των στηλών που αντιπροσωπεύουν τον πίνακα σε ένα αρχείο CSV. Η πρόταση COPY μπορεί να αντιγράψει δεδομένα από αρχεία CSV και να παραλείψει μία ή περισσότερες γραμμές από την κεφαλίδα του αρχείου προέλευσης.
Εάν εκτελέσετε το προηγούμενο παράδειγμα για να φορτώσετε δεδομένα από το Parquet, εξετάστε το ενδεχόμενο να διαγράψετε όλα τα δεδομένα από τον πίνακά σας:
DELETE FROM [dbo].[bing_covid-19_data];
Για να φορτώσετε δεδομένα από ένα αρχείο CSV που παραλείπει μια γραμμή κεφαλίδας, χρησιμοποιήστε τον ακόλουθο κώδικα:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2
);
Ελέγξτε τα αποτελέσματα
Η πρόταση COPY ολοκληρώνεται με την πρόσληψη 4.766.736 γραμμών στον νέο πίνακά σας. Μπορείτε να επιβεβαιώσετε ότι η λειτουργία εκτελέστηκε με επιτυχία εκτελώντας ένα ερώτημα που επιστρέφει τον συνολικό αριθμό γραμμών στον πίνακά σας:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Εάν εκτελέσατε και τα δύο παραδείγματα χωρίς να διαγράψετε τις γραμμές μεταξύ εκτελέσεων, θα δείτε το αποτέλεσμα αυτού του ερωτήματος με τον διπλάσιο αριθμό γραμμών. Παρόλο που αυτό λειτουργεί για την πρόσληψη δεδομένων σε αυτή την περίπτωση, εξετάστε το ενδεχόμενο να διαγράψετε όλες τις γραμμές και να προσλάβετε δεδομένα μόνο μία φορά εάν πρόκειται να πειραματιστείτε περαιτέρω με αυτά τα δεδομένα.