Tutoriel : Charger le jeu de données de New York TaxicabTutorial: Load the New York Taxicab dataset

Ce tutoriel utilise l’instruction COPY pour charger le jeu de données New York Taxicab à partir d’un objet compte de stockage d’objets blob Azure.This tutorial uses the COPY statement to load New York Taxicab dataset from an Azure blob storage account. Ce didacticiel utilise le portail Azure et SQL Server Management Studio (SSMS) pour :The tutorial uses the Azure portal and SQL Server Management Studio (SSMS) to:

  • Créer un pool SQL dans le portail AzureCreate a SQL pool in the Azure portal
  • Configurer une règle de pare-feu au niveau du serveur dans le portail AzureSet up a server-level firewall rule in the Azure portal
  • Se connecter à l’entrepôt de données avec SSMSConnect to the data warehouse with SSMS
  • Créer un utilisateur désigné pour le chargement des donnéesCreate a user designated for loading data
  • Créer les tables pour l’exemple de jeu de donnéesCreate the tables for the sample dataset
  • Utiliser l’instruction T-SQL COPY pour charger les données dans votre entrepôt de donnéesUse the COPY T-SQL statement to load data into your data warehouse
  • Afficher la progression des données à mesure du chargementView the progress of data as it is loading

Si vous ne disposez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Avant de commencerBefore you begin

Avant de commencer ce didacticiel, téléchargez et installez la dernière version de SQL Server Management Studio (SSMS).Before you begin this tutorial, download and install the newest version of SQL Server Management Studio (SSMS).

Se connecter au portail Azure.Log in to the Azure portal

Connectez-vous au portail Azure.Log in to the Azure portal.

Créer une base de données videCreate a blank database

Un pool SQL est créé avec un ensemble défini de ressources de calcul.A SQL pool is created with a defined set of compute resources. La base de données est créée dans un groupe de ressources Azure et dans un serveur SQL logique.The database is created within an Azure resource group and in a logical SQL server.

Pour créer une base de données vide, procédez comme suit.Follow these steps to create a blank database.

  1. Sélectionnez Créer une ressource dans le coin supérieur gauche du portail Azure.Select Create a resource in the upper left-hand corner of the Azure portal.

  2. Sélectionnez Bases de données dans la page Nouveau, puis sélectionnez Azure Synapse Analytics sous Sélection dans la page Nouveau.Select Databases from the New page, and select Azure Synapse Analytics under Featured on the New page.

    créer un entrepôt de données

  3. Renseignez le formulaire avec les informations suivantes :Fill out the form with the following information:

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    Nom*Name* mySampleDataWarehousemySampleDataWarehouse Pour les noms de base de données valides, consultez Database Identifiers (Identificateurs de base de données).For valid database names, see Database Identifiers.
    AbonnementSubscription Votre abonnementYour subscription Pour plus d’informations sur vos abonnements, consultez Abonnements.For details about your subscriptions, see Subscriptions.
    Groupe de ressourcesResource group myResourceGroupmyResourceGroup Pour les noms de groupe de ressources valides, consultez Naming conventions (Conventions d’affectation de nom).For valid resource group names, see Naming rules and restrictions.
    Sélectionner une sourceSelect source Base de données videBlank database Indique de créer une base de données vide.Specifies to create a blank database. Notez qu’un entrepôt de données est un type de base de données.Note, a data warehouse is one type of database.

    créer un entrepôt de données

  4. Sélectionnez Serveur pour créer et configurer un serveur pour votre nouvelle base de données.Select Server to create and configure a new server for your new database. Remplissez le formulaire de nouveau serveur avec les informations suivantes :Fill out the New server form with the following information:

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    Nom du serveurServer name Nom globalement uniqueAny globally unique name Pour les noms de serveur valides, consultez Naming conventions (Conventions d’affectation de nom).For valid server names, see Naming rules and restrictions.
    Connexion d’administrateur du serveurServer admin login Nom valideAny valid name Pour les noms de connexion valides, consultez Database Identifiers (Identificateurs de base de données).For valid login names, see Database Identifiers.
    Mot de passePassword Mot de passe valideAny valid password Votre mot de passe doit comporter au moins 8 caractères et contenir des caractères appartenant à trois des catégories suivantes : majuscules, minuscules, chiffres et caractères non alphanumériques.Your password must have at least eight characters and must contain characters from three of the following categories: upper case characters, lower case characters, numbers, and non-alphanumeric characters.
    LieuLocation Emplacement valideAny valid location Pour plus d’informations sur les régions, consultez Régions Azure.For information about regions, see Azure Regions.

    créer un serveur

  5. Sélectionnez Sélectionner.Select Select.

  6. Sélectionnez Niveau de performance pour spécifier si l’entrepôt de données est de type Gen1 ou Gen2, et indiquer le nombre d’unités d’entrepôt de données.Select Performance level to specify whether the data warehouse is Gen1 or Gen2, and the number of data warehouse units.

  7. Pour ce tutoriel, sélectionnez le pool SQL Gen2.For this tutorial, select SQL pool Gen2. Par défaut, le curseur est défini sur DW1000c.The slider is set to DW1000c by default. Déplacez-le vers le haut et le bas pour voir son fonctionnement.Try moving it up and down to see how it works.

    configurer les performances

  8. Sélectionnez Appliquer.Select Apply.

  9. Dans le panneau d’approvisionnement, sélectionnez un classement pour la base de données vide.In the provisioning blade, select a collation for the blank database. Pour ce didacticiel, utilisez la valeur par défaut.For this tutorial, use the default value. Pour en savoir plus sur les classements, voir ClassementsFor more information about collations, see Collations

  10. Maintenant que vous avez rempli le formulaire, sélectionnez Créer pour approvisionner la base de données.Now that you have completed the form, select Create to provision the database. Le provisionnement prend quelques minutes.Provisioning takes a few minutes.

  11. Dans la barre d’outils, sélectionnez Notifications pour superviser le processus de déploiement.On the toolbar, select Notifications to monitor the deployment process.

    Capture d'écran représentant le portail Azure, avec le volet Notifications ouvert et un déploiement en cours.

Créer une règle de pare-feu au niveau du serveurCreate a server-level firewall rule

Un pare-feu au niveau du serveur empêche les outils et applications externes de se connecter au serveur ou aux bases de données sur celui-ci.A firewall at the server-level that prevents external applications and tools from connecting to the server or any databases on the server. Pour activer la connectivité, vous pouvez ajouter des règles de pare-feu qui activent la connectivité pour des adresses IP spécifiques.To enable connectivity, you can add firewall rules that enable connectivity for specific IP addresses. Suivez ces étapes pour créer une règle de pare-feu au niveau du serveur pour l’adresse IP de votre client.Follow these steps to create a server-level firewall rule for your client's IP address.

Notes

Azure Synapse Analytics communique sur le port 1433.Azure Synapse Analytics communicates over port 1433. Si vous essayez de vous connecter à partir d’un réseau d’entreprise, le trafic sortant sur le port 1433 peut être bloqué par le pare-feu de votre réseau.If you are trying to connect from within a corporate network, outbound traffic over port 1433 might not be allowed by your network's firewall. Dans ce cas, vous ne pouvez pas vous connecter à votre serveur, sauf si votre service informatique ouvre le port 1433.If so, you cannot connect to your server unless your IT department opens port 1433.

  1. Une fois le déploiement terminé, sélectionnez Bases de données SQL dans le menu de gauche, puis mySampleDatabase sur la page Bases de données SQL.After the deployment completes, select SQL databases from the left-hand menu and then select mySampleDatabase on the SQL databases page. La page de présentation de votre base de données s’ouvre, elle affiche le nom de serveur complet (tel que mynewserver-20180430.database.windows.net) et fournit des options pour poursuivre la configuration.The overview page for your database opens, showing you the fully qualified server name (such as mynewserver-20180430.database.windows.net) and provides options for further configuration.

  2. Copiez le nom complet du serveur pour vous connecter à votre serveur et à ses bases de données dans les guides de démarrage rapide suivants.Copy this fully qualified server name for use to connect to your server and its databases in subsequent quick starts. Sélectionnez ensuite le nom du serveur pour ouvrir les paramètres de celui-ci.Then select the server name to open server settings.

    rechercher le nom du serveur

  3. Sélectionnez le nom du serveur pour ouvrir les paramètres de celui-ci.Select the server name to open server settings.

    paramètres du serveur

  4. Sélectionnez Afficher les paramètres de pare-feu.Select Show firewall settings. La page Paramètres de pare-feu du serveur s’ouvre.The Firewall settings page for the server opens.

    règle de pare-feu de serveur

  5. Dans la barre d’outils, sélectionnez Ajouter une adresse IP de client pour ajouter votre adresse IP actuelle à une nouvelle règle de pare-feu.Select Add client IP on the toolbar to add your current IP address to a new firewall rule. Une règle de pare-feu peut ouvrir le port 1433 pour une seule adresse IP ou une plage d’adresses IP.A firewall rule can open port 1433 for a single IP address or a range of IP addresses.

  6. Sélectionnez Enregistrer.Select Save. Une règle de pare-feu au niveau du serveur est créée pour votre adresse IP actuelle, ce qui ouvre le port 1433 sur le serveur.A server-level firewall rule is created for your current IP address opening port 1433 on the server.

  7. Sélectionnez OK, puis fermez la page Paramètres de pare-feu.Select OK and then close the Firewall settings page.

Vous pouvez maintenant vous connecter au serveur et à ses entrepôts de données à l’aide de cette adresse IP.You can now connect to the server and its data warehouses using this IP address. La connexion fonctionne à partir de SQL Server Management Studio ou d’un autre outil de votre choix.The connection works from SQL Server Management Studio or another tool of your choice. Quand vous vous connectez, utilisez le compte ServerAdmin que vous avez créé précédemment.When you connect, use the ServerAdmin account you created previously.

Important

Par défaut, l’accès via le pare-feu SQL Database est activé pour tous les services Azure.By default, access through the SQL Database firewall is enabled for all Azure services. Sélectionnez OFF (Désactivé) dans cette page, puis Enregistrer afin de désactiver le pare-feu pour tous les services Azure.Select OFF on this page and then select Save to disable the firewall for all Azure services.

Obtenir le nom complet du serveurGet the fully qualified server name

Obtenez le nom complet de votre serveur dans le portail Azure.Get the fully qualified server name for your server in the Azure portal. Vous utilisez le nom complet du serveur par la suite pour vous connecter au serveur.Later you will use the fully qualified name when connecting to the server.

  1. Connectez-vous au portail Azure.Log in to the Azure portal.

  2. Sélectionnez Azure Synapse Analytics dans le menu de gauche, puis sélectionnez votre base de données dans la page Azure Synapse Analytics.Select Azure Synapse Analytics from the left-hand menu, and select your database on the Azure Synapse Analytics page.

  3. Dans le volet Essentials de la page du portail Azure pour votre base de données, recherchez et copiez le nom du serveur.In the Essentials pane in the Azure portal page for your database, locate and then copy the Server name. Dans cet exemple, le nom complet est mynewserver-20180430.database.windows.net.In this example, the fully qualified name is mynewserver-20180430.database.windows.net.

    informations de connexion

Se connecter au serveur comme administrateur du serveurConnect to the server as server admin

Cette section utilise SSMS (SQL Server Management Studio) pour établir une connexion avec votre serveur.This section uses SQL Server Management Studio (SSMS) to establish a connection to your server.

  1. Ouvrez SQL Server Management Studio.Open SQL Server Management Studio.

  2. Dans la fenêtre Se connecter au serveur, entrez les valeurs suivantes :In the Connect to Server dialog box, enter the following information:

    ParamètreSetting Valeur suggéréeSuggested value DescriptionDescription
    Type de serveurServer type Moteur de base de donnéesDatabase engine Cette valeur est obligatoireThis value is required
    Nom du serveurServer name Nom complet du serveurThe fully qualified server name Le nom doit ressembler à : mynewserver-20180430.database.windows.net.The name should be something like this: mynewserver-20180430.database.windows.net.
    AuthentificationAuthentication l’authentification SQL ServerSQL Server Authentication L’authentification SQL est le seul type d’authentification que nous avons configuré dans ce didacticiel.SQL Authentication is the only authentication type that we have configured in this tutorial.
    ConnexionLogin Compte d’administrateur de serveurThe server admin account Il s’agit du compte que vous avez spécifié lorsque vous avez créé le serveur.This is the account that you specified when you created the server.
    Mot de passePassword Mot de passe de votre compte d’administrateur de serveurThe password for your server admin account Il s’agit du mot de passe que vous avez spécifié lorsque vous avez créé le serveur.This is the password that you specified when you created the server.

    connect to server

  3. Sélectionnez Connecter.Select Connect. La fenêtre Explorateur d’objets s’ouvre dans SSMS.The Object Explorer window opens in SSMS.

  4. Dans l’Explorateur d’objets, développez Bases de données.In Object Explorer, expand Databases. Ensuite, développez Bases de données système et master pour afficher les objets de la base de données master.Then expand System databases and master to view the objects in the master database. Développez mySampleDatabase pour afficher les objets dans votre nouvelle base de données.Expand mySampleDatabase to view the objects in your new database.

    objets de base de données

Créer un utilisateur pour le chargement des donnéesCreate a user for loading data

Le compte d’administrateur de serveur est destiné à effectuer des opérations de gestion et ne convient pas pour l’exécution de requêtes sur les données utilisateur.The server admin account is meant to perform management operations, and is not suited for running queries on user data. Le chargement des données est une opération utilisant beaucoup de mémoire.Loading data is a memory-intensive operation. Les valeurs maximales de mémoire sont définies en fonction des unités DWU (Data Warehouse Unit) et de la classe de ressource configurées.Memory maximums are defined according to the data warehouse units and resource class configured.

Il est préférable de créer une connexion et un utilisateur dédiés au chargement des données.It's best to create a login and user that is dedicated for loading data. Ensuite, ajoutez l’utilisateur de chargement à une classe de ressource qui permet une allocation de mémoire maximale appropriée.Then add the loading user to a resource class that enables an appropriate maximum memory allocation.

Étant donné que vous êtes actuellement connecté comme administrateur du serveur, vous pouvez créer des connexions et des utilisateurs.Since you are currently connected as the server admin, you can create logins and users. Suivez ces étapes pour créer une connexion et un utilisateur appelé LoaderRC20.Use these steps to create a login and user called LoaderRC20. Ensuite, attribuez l’utilisateur à la classe de ressource staticrc20.Then assign the user to the staticrc20 resource class.

  1. Dans SSMS, cliquez avec le bouton droit sur master pour afficher un menu déroulant, puis choisissez Nouvelle requête.In SSMS, right-select master to show a drop-down menu, and choose New Query. Une nouvelle fenêtre de requête s’ouvre.A new query window opens.

    Nouvelle requête dans master

  2. Dans la fenêtre de requête, entrez ces commandes T-SQL pour créer une connexion et un utilisateur nommé LoaderRC20, en remplaçant votre mot de passe par « a123STRONGpassword! ».In the query window, enter these T-SQL commands to create a login and user named LoaderRC20, substituting your own password for 'a123STRONGpassword!'.

    CREATE LOGIN LoaderRC20 WITH PASSWORD = 'a123STRONGpassword!';
    CREATE USER LoaderRC20 FOR LOGIN LoaderRC20;
    
  3. Sélectionnez Exécuter.Select Execute.

  4. Cliquez avec le bouton droit sur mySampleDataWarehouse et choisissez Nouvelle requête.Right-click mySampleDataWarehouse, and choose New Query. Une nouvelle fenêtre de requête s’ouvre.A new query Window opens.

    Nouvelle requête sur l’exemple d’entrepôt de données

  5. Entrez les commandes T-SQL suivantes pour créer un utilisateur de base de données nommé LoaderRC20 pour la connexion LoaderRC20.Enter the following T-SQL commands to create a database user named LoaderRC20 for the LoaderRC20 login. La deuxième ligne accorde au nouvel utilisateur des autorisations de contrôle sur le nouvel entrepôt de données.The second line grants the new user CONTROL permissions on the new data warehouse. Ces autorisations reviennent à désigner l’utilisateur comme propriétaire de la base de données.These permissions are similar to making the user the owner of the database. La troisième ligne ajoute le nouvel utilisateur comme membre de la classe de ressource staticrc20.The third line adds the new user as a member of the staticrc20 resource class.

    CREATE USER LoaderRC20 FOR LOGIN LoaderRC20;
    GRANT CONTROL ON DATABASE::[mySampleDataWarehouse] to LoaderRC20;
    EXEC sp_addrolemember 'staticrc20', 'LoaderRC20';
    
  6. Sélectionnez Exécuter.Select Execute.

Se connecter au serveur comme utilisateur de chargementConnect to the server as the loading user

La première étape du chargement des données consiste à se connecter sous LoaderRC20.The first step toward loading data is to login as LoaderRC20.

  1. Dans l’Explorateur d’objets, sélectionnez le menu déroulant Se connecter, puis Moteur de base de données.In Object Explorer, select the Connect drop down menu and select Database Engine. La boîte de dialogue Se connecter au serveur s’affiche.The Connect to Server dialog box appears.

    Se connecter avec le nouvelle connexion

  2. Entrez le nom complet du serveur, puis LoaderRC20 comme connexion.Enter the fully qualified server name, and enter LoaderRC20 as the Login. Entrez votre mot de passe pour LoaderRC20.Enter your password for LoaderRC20.

  3. Sélectionnez Connecter.Select Connect.

  4. Quand votre connexion est prête, vous voyez deux connexions de serveur dans l’Explorateur d’objets.When your connection is ready, you will see two server connections in Object Explorer. Une connexion sous ServerAdmin et une connexion sous MedRCLogin.One connection as ServerAdmin and one connection as MedRCLogin.

    La connexion a abouti

Créer des tables pour les exemples de donnéesCreate tables for the sample data

Vous êtes prêt à commencer le processus de chargement des données dans votre nouvel entrepôt de données.You are ready to begin the process of loading data into your new data warehouse. Cette partie du tutoriel vous montre comment utiliser l’instruction COPY pour charger le jeu de données New York Taxicab à partir d’un objet blob Stockage Azure.This part of the tutorial shows you how to use the COPY statement to load the New York City taxi cab dataset from an Azure Storage blob. À des fins de référence future, pour savoir comment charger vos données vers le stockage d’objets blob Azure ou pour les charger directement à partir de votre source, voir Vue d’ensemble du chargement.For future reference, to learn how to get your data to Azure blob storage or to load it directly from your source, see the loading overview.

Exécutez les scripts SQL suivants en spécifiant les informations sur les données que vous voulez charger.Run the following SQL scripts and specify information about the data you wish to load. Ces informations sont notamment l’emplacement des données, le format du contenu des données et la définition de table pour les données.This information includes where the data is located, the format of the contents of the data, and the table definition for the data.

  1. Dans la section précédente, vous vous êtes connecté à votre entrepôt de données sous LoaderRC20.In the previous section, you logged into your data warehouse as LoaderRC20. Dans SSMS, cliquez avec le bouton droit sur votre connexion LoaderRC20 et sélectionnez Nouvelle requête.In SSMS, right-click your LoaderRC20 connection and select New Query. Une nouvelle fenêtre de requête s’affiche.A new query window appears.

    Fenêtre de nouvelle requête de chargement

  2. Comparez votre fenêtre de requête à l’image précédente.Compare your query window to the previous image. Vérifiez que votre fenêtre de nouvelle requête s’exécute sous LoaderRC20 et qu’elle exécute des requêtes sur votre base de données MySampleDataWarehouse.Verify your new query window is running as LoaderRC20 and performing queries on your MySampleDataWarehouse database. Utilisez cette fenêtre de requête pour effectuer toutes les étapes de chargement.Use this query window to perform all of the loading steps.

  3. Exécutez les instructions T-SQL suivantes pour créer les tables :Run the following T-SQL statements to create the tables:

    CREATE TABLE [dbo].[Date]
    (
        [DateID] int NOT NULL,
        [Date] datetime NULL,
        [DateBKey] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfMonth] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DaySuffix] varchar(4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfWeek] char(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfWeekInMonth] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfWeekInYear] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfQuarter] varchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [DayOfYear] varchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [WeekOfMonth] varchar(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [WeekOfQuarter] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [WeekOfYear] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [Month] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [MonthName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [MonthOfQuarter] varchar(2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [Quarter] char(1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [QuarterName] varchar(9) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [Year] char(4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [YearName] char(7) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [MonthYear] char(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [MMYYYY] char(6) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [FirstDayOfMonth] date NULL,
        [LastDayOfMonth] date NULL,
        [FirstDayOfQuarter] date NULL,
        [LastDayOfQuarter] date NULL,
        [FirstDayOfYear] date NULL,
        [LastDayOfYear] date NULL,
        [IsHolidayUSA] bit NULL,
        [IsWeekday] bit NULL,
        [HolidayUSA] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    
    CREATE TABLE [dbo].[Geography]
    (
        [GeographyID] int NOT NULL,
        [ZipCodeBKey] varchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
        [County] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [City] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [State] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [Country] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
        [ZipCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    
    CREATE TABLE [dbo].[HackneyLicense]
    (
        [HackneyLicenseID] int NOT NULL,
        [HackneyLicenseBKey] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
        [HackneyLicenseCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    
    CREATE TABLE [dbo].[Medallion]
    (
        [MedallionID] int NOT NULL,
        [MedallionBKey] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
        [MedallionCode] varchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    
    CREATE TABLE [dbo].[Time]
    (
        [TimeID] int NOT NULL,
        [TimeBKey] varchar(8) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
        [HourNumber] tinyint NOT NULL,
        [MinuteNumber] tinyint NOT NULL,
        [SecondNumber] tinyint NOT NULL,
        [TimeInSecond] int NOT NULL,
        [HourlyBucket] varchar(15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
        [DayTimeBucketGroupKey] int NOT NULL,
        [DayTimeBucket] varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    
    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
    );
    
    CREATE TABLE [dbo].[Weather]
    (
        [DateID] int NOT NULL,
        [GeographyID] int NOT NULL,
        [PrecipitationInches] float NOT NULL,
        [AvgTemperatureFahrenheit] float NOT NULL
    )
    WITH
    (
        DISTRIBUTION = ROUND_ROBIN,
        CLUSTERED COLUMNSTORE INDEX
    );
    

Charger les données dans votre entrepôt de donnéesLoad the data into your data warehouse

Cette section utilise l’instruction COPY pour charger les exemples de données à partir d’Azure Storage Blob.This section uses the COPY statement to load the sample data from Azure Storage Blob.

Notes

Ce didacticiel charge directement les données dans la table finale.This tutorial loads the data directly into the final table. En général, vous les chargez dans une table de mise en lots pour vos charges de travail de production.You would typically load into a staging table for your production workloads. Lorsque les données se trouvent dans la table de mise en lots, vous pouvez effectuer toutes les transformations nécessaires.While data is in the staging table you can perform any necessary transformations.

  1. Exécutez les instructions suivantes pour charger les données :Run the following statements to load the data:

    COPY INTO [dbo].[Date]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Date'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = ''
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Date] - Taxi dataset');
    
    
    COPY INTO [dbo].[Geography]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Geography'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = ''
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Geography] - Taxi dataset');
    
    COPY INTO [dbo].[HackneyLicense]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/HackneyLicense'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = ''
    )
    OPTION (LABEL = 'COPY : Load [dbo].[HackneyLicense] - Taxi dataset');
    
    COPY INTO [dbo].[Medallion]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Medallion'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = ''
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Medallion] - Taxi dataset');
    
    COPY INTO [dbo].[Time]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Time'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = ''
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Time] - Taxi dataset');
    
    COPY INTO [dbo].[Weather]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Weather'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = ',',
        FIELDQUOTE = '',
        ROWTERMINATOR='0X0A'
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Weather] - Taxi dataset');
    
    COPY INTO [dbo].[Trip]
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = '|',
        FIELDQUOTE = '',
        ROWTERMINATOR='0X0A',
        COMPRESSION = 'GZIP'
    )
    OPTION (LABEL = 'COPY : Load [dbo].[Trip] - Taxi dataset');
    
  2. Affichez vos données à mesure qu’elles sont chargées.View your data as it loads. Vous chargez plusieurs gigaoctets de données et les compressez au sein d’index de cluster columnstore hautes performances.You're loading several GBs of data and compressing it into highly performant clustered columnstore indexes. Exécutez la requête suivante qui fait appel à des vues de gestion dynamique pour afficher l’état de la charge.Run the following query that uses a dynamic management views (DMVs) to show the status of the load.

    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 : Load [dbo].[Date] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[Geography] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[HackneyLicense] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[Medallion] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[Time] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[Weather] - Taxi dataset' OR
        [label] = 'COPY : Load [dbo].[Trip] - Taxi dataset' 
    and session_id <> session_id() and type = 'WRITER'
    GROUP BY r.[request_id]                           
    ,       r.[status]                               
    ,       r.resource_class                         
    ,       r.command;
    
  3. Affichez toutes les requêtes du système.View all system queries.

    SELECT * FROM sys.dm_pdw_exec_requests;
    
  4. Vous pouvez constater que vos données sont efficacement chargées dans votre entrepôt de données.Enjoy seeing your data nicely loaded into your data warehouse.

    Afficher les tables chargées

Nettoyer les ressourcesClean up resources

Vous êtes facturé en fonction des ressources de calcul et des données que vous avez chargées dans votre entrepôt de données.You are being charged for compute resources and data that you loaded into your data warehouse. Les deux sont facturés séparément.These are billed separately.

  • Si vous voulez conserver les données dans le stockage, vous pouvez suspendre le calcul quand vous n’utilisez pas l’entrepôt de données.If you want to keep the data in storage, you can pause compute when you aren't using the data warehouse. Quand vous suspendez le calcul, vous êtes facturé uniquement pour le stockage des données et vous pouvez reprendre le calcul dès que vous voulez utiliser les données.By pausing compute you will only be charge for data storage and you can resume the compute whenever you are ready to work with the data.
  • Si vous voulez éviter des frais futurs, vous pouvez supprimer l’entrepôt de données.If you want to remove future charges, you can delete the data warehouse.

Suivez ces étapes pour nettoyer les ressources selon vos besoins.Follow these steps to clean up resources as you desire.

  1. Connectez-vous au portail Azure, puis sélectionnez votre entrepôt de données.Log in to the Azure portal, select your data warehouse.

    Nettoyer les ressources

  2. Pour suspendre le calcul, sélectionnez le bouton Suspendre.To pause compute, select the Pause button. Quand l’entrepôt de données est suspendu, un bouton Démarrer s’affiche.When the data warehouse is paused, you will see a Start button. Pour reprendre le calcul, sélectionnez Démarrer.To resume compute, select Start.

  3. Pour supprimer l’entrepôt de données afin de ne pas être facturé pour le calcul ou le stockage, sélectionnez Supprimer.To remove the data warehouse so you won't be charged for compute or storage, select Delete.

  4. Pour supprimer le serveur que vous avez créé, sélectionnez mynewserver-20180430.database.windows.net dans l’image précédente, puis Supprimer.To remove the server you created, select mynewserver-20180430.database.windows.net in the previous image, and then select Delete. N’oubliez pas que la suppression du serveur supprime toutes les bases de données attribuées au serveur.Be careful with this as deleting the server will delete all databases assigned to the server.

  5. Pour supprimer le groupe de ressources, sélectionnez myResourceGroup, puis Supprimer le groupe de ressources.To remove the resource group, select myResourceGroup, and then select Delete resource group.

Étapes suivantesNext steps

Dans ce didacticiel, vous avez appris à créer un entrepôt de données et un utilisateur pour le chargement des données.In this tutorial, you learned how to create a data warehouse and create a user for loading data. Vous avez utilisé l’instruction COPY pour charger des données dans votre entrepôt de données.You used the simple COPY statement to load data into your data warehouse.

Voici les étapes que vous avez effectuées :You did these things:

  • Créer un entrepôt de données dans le portail AzureCreated a data warehouse in the Azure portal
  • Configurer une règle de pare-feu au niveau du serveur dans le portail AzureSet up a server-level firewall rule in the Azure portal
  • Se connecter à l’entrepôt de données avec SSMSConnected to the data warehouse with SSMS
  • Créer un utilisateur désigné pour le chargement des donnéesCreated a user designated for loading data
  • Créer les tables pour les exemples de donnéesCreated the tables for the sample data
  • Utiliser l’instruction T-SQL COPY pour charger les données dans votre entrepôt de donnéesUsed the COPY T-SQL statement to load data into your data warehouse
  • Afficher la progression des données à mesure du chargementViewed the progress of data as it is loading

Passez à la vue d’ensemble du développement pour savoir comment migrer une base de données existante vers Azure Synapse Analytics :Advance to the development overview to learn how to migrate an existing database to Azure Synapse Analytics:

Pour obtenir plus d’exemples et de références sur le chargement, consultez la documentation suivante :For more loading examples and references, view the following documentation: