チュートリアル:ニューヨークのタクシー データセットを読み込むTutorial: Load the New York Taxicab dataset

このチュートリアルでは、COPY ステートメントを使用して、Azure BLOB ストレージ アカウントからニューヨークのタクシー データセットを読み込みます。This tutorial uses the COPY statement to load New York Taxicab dataset from an Azure blob storage account. このチュートリアルでは、Azure PortalSQL Server Management Studio (SSMS) を使って、次のことを行います。The tutorial uses the Azure portal and SQL Server Management Studio (SSMS) to:

  • Azure portal で SQL プールを作成するCreate a SQL pool in the Azure portal
  • Azure Portal でサーバーレベルのファイアウォール規則を設定するSet up a server-level firewall rule in the Azure portal
  • SSMS でデータ ウェアハウスに接続するConnect to the data warehouse with SSMS
  • データを読み込むように指定されたユーザーを作成するCreate a user designated for loading data
  • サンプル データセット用のテーブルを作成するCreate the tables for the sample dataset
  • COPY T-SQL ステートメントを使ってデータをデータ ウェアハウスに読み込むUse the COPY T-SQL statement to load data into your data warehouse
  • データ読み込みの進行状況を表示するView the progress of data as it is loading

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

開始する前にBefore you begin

このチュートリアルを始める前に、最新バージョンの SQL Server Management Studio (SSMS) をダウンロードしてインストールします。Before you begin this tutorial, download and install the newest version of SQL Server Management Studio (SSMS).

Azure Portal にログインするLog in to the Azure portal

Azure Portal にログインします。Log in to the Azure portal.

空のデータベースの作成Create a blank database

SQL プールは、定義された一連のコンピューティング リソースを使用して作成されます。A SQL pool is created with a defined set of compute resources. データベースは、Azure リソース グループ内と論理 SQL サーバーに作成されます。The database is created within an Azure resource group and in a logical SQL server.

次の手順に従って、空のデータベースを作成します。Follow these steps to create a blank database.

  1. Azure Portal の左上隅にある [リソースの作成] を選択します。Select Create a resource in the upper left-hand corner of the Azure portal.

  2. [新規] ページの [データベース] を選択し、 [新規] ページの [おすすめ][Azure Synapse Analytics] を選択します。Select Databases from the New page, and select Azure Synapse Analytics under Featured on the New page.

    データ ウェアハウスを作成する

  3. フォームに次の情報を入力します。Fill out the form with the following information:

    設定Setting 推奨値Suggested value 説明Description
    [名前] *Name* mySampleDataWarehousemySampleDataWarehouse 有効なデータベース名については、「Database Identifiers (データベース識別子)」を参照してください。For valid database names, see Database Identifiers.
    サブスクリプションSubscription 該当するサブスクリプションYour subscription サブスクリプションの詳細については、サブスクリプションに関するページを参照してください。For details about your subscriptions, see Subscriptions.
    リソース グループResource group myResourceGroupmyResourceGroup 有効なリソース グループ名については、名前付け規則と制限に関するページを参照してください。For valid resource group names, see Naming rules and restrictions.
    ソースの選択Select source 空のデータベースBlank database 空のデータベースの作成を指定します。Specifies to create a blank database. データ ウェアハウスはデータベースの一種です。Note, a data warehouse is one type of database.

    データ ウェアハウスを作成する

  4. [サーバー] を選択して、新しいデータベース用の新しいサーバーを作成して構成します。Select Server to create and configure a new server for your new database. [新しいサーバー] フォームには次の情報を入力してください。Fill out the New server form with the following information:

    設定Setting 推奨値Suggested value 説明Description
    サーバー名Server name グローバルに一意の名前Any globally unique name 有効なサーバー名については、名前付け規則と制限に関するページを参照してください。For valid server names, see Naming rules and restrictions.
    サーバー管理者ログインServer admin login 有効な名前Any valid name 有効なログイン名については、「Database Identifiers (データベース識別子)」を参照してください。For valid login names, see Database Identifiers.
    パスワードPassword 有効なパスワードAny valid password パスワードには 8 文字以上が使用され、大文字、小文字、数字、英数字以外の文字のうち、3 つのカテゴリの文字が含まれている必要があります。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.
    場所Location 有効な場所Any valid location リージョンについては、「Azure リージョン」を参照してください。For information about regions, see Azure Regions.

    サーバーを作成する

  5. [選択] を選択します。Select Select.

  6. [パフォーマンス レベル] を選択し、データ ウェアハウスが Gen1 または Gen2 のいずれであるかということと、データ ウェアハウス ユニットの数を指定します。Select Performance level to specify whether the data warehouse is Gen1 or Gen2, and the number of data warehouse units.

  7. このチュートリアルでは、SQL プールの [Gen2] を選択します。For this tutorial, select SQL pool Gen2. スライダーは、既定で [DW1000c] に設定されています。The slider is set to DW1000c by default. 上下に動かしてどうなるか試してみてください。Try moving it up and down to see how it works.

    パフォーマンスを構成する

  8. [適用] を選択します。Select Apply.

  9. [プロビジョニング] ブレードで、空のデータベース用の [照合順序] を選びます。In the provisioning blade, select a collation for the blank database. このチュートリアルでは、既定の値を使います。For this tutorial, use the default value. 照合順序の詳細については、「Collations (照合順序)」を参照してください。For more information about collations, see Collations

  10. これでフォームの入力が完了したので、 [作成] をクリックして、データベースをプロビジョニングします。Now that you have completed the form, select Create to provision the database. プロビジョニングには数分かかります。Provisioning takes a few minutes.

  11. デプロイ プロセスを監視するために、ツール バーの [通知] を選択します。On the toolbar, select Notifications to monitor the deployment process.

    スクリーンショットは、[デプロイ中] と表示された [通知] ペインが開いている Azure portal を示しています。

サーバーレベルのファイアウォール規則を作成するCreate a server-level firewall rule

サーバーレベルのファイアウォールにより、外部のアプリケーションとツールは、サーバーやサーバー上のすべてのデータベースに接続できなくなります。A firewall at the server-level that prevents external applications and tools from connecting to the server or any databases on the server. 接続できるようにするには、特定の IP アドレスに接続を許可するファイアウォール規則を追加します。To enable connectivity, you can add firewall rules that enable connectivity for specific IP addresses. 次の手順に従って、クライアントの IP アドレスに対するサーバーレベルのファイアウォール規則を作成します。Follow these steps to create a server-level firewall rule for your client's IP address.

注意

Azure Synapse Analytics の通信は、ポート 1433 で行われます。Azure Synapse Analytics communicates over port 1433. 企業ネットワーク内から接続しようとしても、ポート 1433 での送信トラフィックがネットワークのファイアウォールで禁止されている場合があります。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. その場合、会社の IT 部門によってポート 1433 が開放されない限り、サーバーに接続することはできません。If so, you cannot connect to your server unless your IT department opens port 1433.

  1. デプロイが完了したら、左側のメニューから [SQL データベース] を選択し、 [SQL データベース] ページで、 [mySampleDatabase] を選択します。After the deployment completes, select SQL databases from the left-hand menu and then select mySampleDatabase on the SQL databases page. このデータベースの概要ページが開くと、完全修飾サーバー名 (mynewserver-20180430.database.windows.net など) や追加の構成オプションが表示されます。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. この完全修飾サーバー名をコピーします。以降のクイック スタートでサーバーとそのデータベースに接続する際に必要となります。Copy this fully qualified server name for use to connect to your server and its databases in subsequent quick starts. 次に、サーバー名を選択して、サーバー設定を開きます。Then select the server name to open server settings.

    サーバー名を検索する

  3. サーバー名を選択して、サーバー設定を開きます。Select the server name to open server settings.

    サーバー設定

  4. [ファイアウォール設定の表示] を選択します。Select Show firewall settings. サーバーの [ファイアウォール設定] ページが開きます。The Firewall settings page for the server opens.

    サーバーのファイアウォール規則

  5. ツール バーの [クライアント IP の追加] を選択し、現在の IP アドレスを新しいファイアウォール規則に追加します。Select Add client IP on the toolbar to add your current IP address to a new firewall rule. ファイアウォール規則は、単一の IP アドレスまたは IP アドレスの範囲に対して、ポート 1433 を開くことができます。A firewall rule can open port 1433 for a single IP address or a range of IP addresses.

  6. [保存] を選択します。Select Save. サーバー上でポート 1433 を開いている現在の IP アドレスに対して、サーバーレベルのファイアウォール規則が作成されます。A server-level firewall rule is created for your current IP address opening port 1433 on the server.

  7. [OK] を選択し、 [ファイアウォール設定] ページを閉じます。Select OK and then close the Firewall settings page.

これで、この IP アドレスを使って、サーバーとそのデータ ウェアハウスに接続できるようになりました。You can now connect to the server and its data warehouses using this IP address. 接続するには、SQL Server Management Studio または他の適当なツールを使います。The connection works from SQL Server Management Studio or another tool of your choice. 接続するときは、前に作成した ServerAdmin アカウントを使います。When you connect, use the ServerAdmin account you created previously.

重要

既定では、すべての Azure サービスで、SQL Database ファイアウォール経由のアクセスが有効になります。By default, access through the SQL Database firewall is enabled for all Azure services. このページの [オフ] を選択した後、 [保存] を選択して、すべての Azure サービスに対してファイアウォールを無効にします。Select OFF on this page and then select Save to disable the firewall for all Azure services.

完全修飾サーバー名を取得するGet the fully qualified server name

Azure portal 上で、サーバーの完全修飾サーバー名を取得します。Get the fully qualified server name for your server in the Azure portal. 後でサーバーに接続するときに、完全修飾名を使います。Later you will use the fully qualified name when connecting to the server.

  1. Azure Portal にログインします。Log in to the Azure portal.

  2. 左側のメニューから [Azure Synapse Analytics] を選択し、 [Azure Synapse Analytics] ページで目的のデータベースを選択します。Select Azure Synapse Analytics from the left-hand menu, and select your database on the Azure Synapse Analytics page.

  3. そのデータベースの Azure Portal ページの [基本] ウィンドウで、サーバー名を見つけてコピーします。In the Essentials pane in the Azure portal page for your database, locate and then copy the Server name. この例の完全修飾名は mynewserver-20180430.database.windows.net です。In this example, the fully qualified name is mynewserver-20180430.database.windows.net.

    接続情報

サーバー管理者としてサーバーに接続するConnect to the server as server admin

このセクションでは、SQL Server Management Studio (SSMS) を使って、サーバーへの接続を確立します。This section uses SQL Server Management Studio (SSMS) to establish a connection to your server.

  1. SQL Server Management Studio を開きます。Open SQL Server Management Studio.

  2. [サーバーへの接続] ダイアログ ボックスで、次の情報を入力します。In the Connect to Server dialog box, enter the following information:

    設定Setting 推奨値Suggested value 説明Description
    サーバーの種類Server type データベース エンジンDatabase engine この値は必須ですThis value is required
    サーバー名Server name 完全修飾サーバー名The fully qualified server name 名前は mynewserver-20180430.database.windows.net のような形式で指定する必要があります。The name should be something like this: mynewserver-20180430.database.windows.net.
    認証Authentication SQL Server 認証SQL Server Authentication このチュートリアルで構成した認証の種類は "SQL 認証" のみです。SQL Authentication is the only authentication type that we have configured in this tutorial.
    ログインLogin サーバー管理者アカウントThe server admin account これはサーバーを作成したときに指定したアカウントです。This is the account that you specified when you created the server.
    PasswordPassword サーバー管理者アカウントのパスワードThe password for your server admin account これはサーバーを作成したときに指定したパスワードです。This is the password that you specified when you created the server.

    [サーバーに接続]

  3. [接続] を選択します。Select Connect. SSMS で [オブジェクト エクスプローラー] ウィンドウが開きます。The Object Explorer window opens in SSMS.

  4. オブジェクト エクスプローラーで、 [データベース] を展開します。In Object Explorer, expand Databases. [システム データベース][master] の順に展開し、マスター データベースのオブジェクトを表示します。Then expand System databases and master to view the objects in the master database. mySampleDatabase を展開して、新しいデータベースのオブジェクトを表示します。Expand mySampleDatabase to view the objects in your new database.

    データベース オブジェクト

データを読み込むためのユーザーを作成するCreate a user for loading data

サーバー管理者アカウントは管理操作を実行するためのものであり、ユーザー データに対するクエリの実行には適していません。The server admin account is meant to perform management operations, and is not suited for running queries on user data. データの読み込みは、メモリを大量に消費する操作です。Loading data is a memory-intensive operation. メモリの最大値は、データ ウェアハウス ユニットリソース クラスの構成に従って定義されます。Memory maximums are defined according to the data warehouse units and resource class configured.

データの読み込みに専用のログインとユーザーを作成することをお勧めします。It's best to create a login and user that is dedicated for loading data. その後、適切な最大メモリ割り当てを有効にするリソース クラスに読み込みユーザーを追加します。Then add the loading user to a resource class that enables an appropriate maximum memory allocation.

現在はサーバー管理者として接続しているので、ログインとユーザーを作成することができます。Since you are currently connected as the server admin, you can create logins and users. 以下の手順を使って、LoaderRC20 という名前のログインとユーザーを作成します。Use these steps to create a login and user called LoaderRC20. その後、そのユーザーを staticrc20 リソース クラスに割り当てます。Then assign the user to the staticrc20 resource class.

  1. SSMS で [master] を右クリックしてドロップダウン メニューを表示し、 [新しいクエリ] を選びます。In SSMS, right-select master to show a drop-down menu, and choose New Query. 新しいクエリ ウィンドウが開きます。A new query window opens.

    master の新しいクエリ

  2. クエリ ウィンドウで、次の T-SQL コマンドを入力して、LoaderRC20 という名前のログインとユーザーを作成します。"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. [実行] を選択します。Select Execute.

  4. mySampleDataWarehouse を右クリックして、 [新しいクエリ] を選びます。Right-click mySampleDataWarehouse, and choose New Query. 新しいクエリ ウィンドウが開きます。A new query Window opens.

    サンプル データ ウェアハウスに対する新しいクエリ

  5. 次の T-SQL コマンドを入力して、LoaderRC20 ログインに対する LoaderRC20 という名前のデータベース ユーザーを作成します。Enter the following T-SQL commands to create a database user named LoaderRC20 for the LoaderRC20 login. 2 行目では、新しいユーザーに新しいデータ ウェアハウスの CONTROL アクセス許可を付与しています。The second line grants the new user CONTROL permissions on the new data warehouse. これらのアクセス許可は、ユーザーをデータベースの所有者にする場合と似ています。These permissions are similar to making the user the owner of the database. 3 行目では、新しいユーザーを 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. [実行] を選択します。Select Execute.

読み込みユーザーとしてサーバーに接続するConnect to the server as the loading user

データを読み込むための最初のステップは、LoaderRC20 としてログインすることです。The first step toward loading data is to login as LoaderRC20.

  1. オブジェクト エクスプローラーで [接続] ドロップダウン メニューを選択し、 [データベース エンジン] を選択します。In Object Explorer, select the Connect drop down menu and select Database Engine. [サーバーに接続] ダイアログ ボックスが表示されます。The Connect to Server dialog box appears.

    新しいログインで接続する

  2. 完全修飾サーバー名を入力し、ログインとして「LoaderRC20」と入力します。Enter the fully qualified server name, and enter LoaderRC20 as the Login. LoaderRC20 のパスワードを入力します。Enter your password for LoaderRC20.

  3. [接続] を選択します。Select Connect.

  4. 接続する準備ができると、オブジェクト エクスプローラーに 2 つのサーバー接続が表示されます。When your connection is ready, you will see two server connections in Object Explorer. 1 つは ServerAdmin としての接続、もう 1 つは MedRCLogin としての接続です。One connection as ServerAdmin and one connection as MedRCLogin.

    接続成功

サンプル データ用のテーブルを作成するCreate tables for the sample data

新しいデータ ウェアハウスにデータを読み込むプロセスを始める準備ができました。You are ready to begin the process of loading data into your new data warehouse. チュートリアルのこのパートでは、COPY ステートメントを使用して、Azure Storage Blob からニューヨーク市のタクシーのデータセットを読み込む方法を示します。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. 今後の参考として、データを Azure Blob Storage に取得する方法やソースから直接読み込む方法については、読み込みの概要に関するページを参照してください。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.

次の SQL スクリプトを実行して、読み込むデータに関する情報を指定します。Run the following SQL scripts and specify information about the data you wish to load. この情報には、データが置かれている場所、データの内容の形式、およびデータのテーブル定義が含まれます。This information includes where the data is located, the format of the contents of the data, and the table definition for the data.

  1. 前のセクションで、LoaderRC20 としてデータ ウェアハウスにログインしました。In the previous section, you logged into your data warehouse as LoaderRC20. SSMS で LoaderRC20 接続を右クリックして、 [新しいクエリ] を選びます。In SSMS, right-click your LoaderRC20 connection and select New Query. 新しいクエリ ウィンドウが表示されます。A new query window appears.

    新しい読み込みクエリ ウィンドウ

  2. 実際のクエリ ウィンドウと上の画像を比べてください。Compare your query window to the previous image. 新しいクエリ ウィンドウが LoaderRC20 として実行されていること、および MySampleDataWarehouse データベースに対するクエリを実行していることを確認します。Verify your new query window is running as LoaderRC20 and performing queries on your MySampleDataWarehouse database. このクエリ ウィンドウを使って、すべての読み込み手順を実行します。Use this query window to perform all of the loading steps.

  3. 次の T-SQL ステートメントを実行して、テーブルを作成します。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
    );
    

データ ウェアハウスにデータを読み込むLoad the data into your data warehouse

このセクションでは、Azure Storage Blob からサンプル データを読み込むための COPY ステートメントを使用します。This section uses the COPY statement to load the sample data from Azure Storage Blob.

注意

このチュートリアルでは、最終テーブルにデータを直接読み込みます。This tutorial loads the data directly into the final table. 通常は、運用ワークロード用のステージング テーブルに読み込みます。You would typically load into a staging table for your production workloads. データがステージング テーブルにある間に、必要な変換を実行できます。While data is in the staging table you can perform any necessary transformations.

  1. 次のステートメントを実行して、データを読み込みます。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. 読み込んだデータを表示します。View your data as it loads. 数 GB のデータを読み込み、高パフォーマンスのクラスター化列ストア インデックスに圧縮しています。You're loading several GBs of data and compressing it into highly performant clustered columnstore indexes. 動的管理ビュー (DMV) を使用する次のクエリを実行して、読み込みの状態を表示します。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. すべてのシステム クエリを表示します。View all system queries.

    SELECT * FROM sys.dm_pdw_exec_requests;
    
  4. データ ウェアハウスにデータが適切に読み込まれました。Enjoy seeing your data nicely loaded into your data warehouse.

    読み込まれたテーブルを表示する

リソースをクリーンアップするClean up resources

コンピューティング リソースとデータ ウェアハウスに読み込んだデータには課金されています。You are being charged for compute resources and data that you loaded into your data warehouse. これらは別々に請求されます。These are billed separately.

  • データをストレージに保持しておく場合は、データ ウェアハウスを使わない間、コンピューティング リソースを一時停止できます。If you want to keep the data in storage, you can pause compute when you aren't using the data warehouse. コンピューティング リソースを一時停止すると課金はデータ ストレージだけになり、データを使う準備ができたらいつでもコンピューティング リソースを再開できます。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.
  • それ以上課金されないようにする場合は、データ ウェアハウスを削除できます。If you want to remove future charges, you can delete the data warehouse.

必要に応じて、以下の手順でリソースをクリーンアップします。Follow these steps to clean up resources as you desire.

  1. Azure portal にログインし、データ ウェアハウスを選択します。Log in to the Azure portal, select your data warehouse.

    リソースをクリーンアップする

  2. コンピューティング リソースを一時停止するには、 [一時停止] ボタンを選択します。To pause compute, select the Pause button. データ ウェアハウスが一時停止すると、ボタンの表示が [開始] になります。When the data warehouse is paused, you will see a Start button. コンピューティング リソースを再開するには、 [開始] を選択します。To resume compute, select Start.

  3. コンピューティング リソースやストレージに課金されないようにデータ ウェアハウスを削除するには、 [削除] を選択します。To remove the data warehouse so you won't be charged for compute or storage, select Delete.

  4. 作成したサーバーを削除するには、前の図の mynewserver-20180430.database.windows.net を選び、 [削除] を選択します。To remove the server you created, select mynewserver-20180430.database.windows.net in the previous image, and then select Delete. サーバーを削除すると、サーバーに割り当てられているすべてのデータベースが削除されるので、注意してください。Be careful with this as deleting the server will delete all databases assigned to the server.

  5. リソース グループを削除するには、myResourceGroup を選択して、 [リソース グループの削除] を選択します。To remove the resource group, select myResourceGroup, and then select Delete resource group.

次のステップNext steps

このチュートリアルでは、データ ウェアハウスを作成し、データを読み込むためのユーザーを作成する方法について学習しました。In this tutorial, you learned how to create a data warehouse and create a user for loading data. シンプルな COPY ステートメントを使って、データをデータ ウェアハウスに読み込みました。You used the simple COPY statement to load data into your data warehouse.

以下のことを行いました。You did these things:

  • Azure Portal でデータ ウェアハウスを作成しましたCreated a data warehouse in the Azure portal
  • Azure Portal でサーバーレベルのファイアウォール規則を設定するSet up a server-level firewall rule in the Azure portal
  • SSMS でデータ ウェアハウスに接続しましたConnected to the data warehouse with SSMS
  • データを読み込むように指定されたユーザーを作成しましたCreated a user designated for loading data
  • サンプル データ用のテーブルを作成しましたCreated the tables for the sample data
  • COPY T-SQL ステートメントを使ってデータをデータ ウェアハウスに読み込みましたUsed the COPY T-SQL statement to load data into your data warehouse
  • データ読み込みの進行状況を表示しましたViewed the progress of data as it is loading

開発の概要に進んで、既存のデータベースを Azure Synapse Analytics に移行する方法を確認してください。Advance to the development overview to learn how to migrate an existing database to Azure Synapse Analytics:

読み込みの例とリファレンスに関する詳細については、次のドキュメントを確認してください。For more loading examples and references, view the following documentation: