SQL Server Python および R チュートリアル用の NYC タクシー のデモ データ

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance

この記事では、New York City Taxi and Limousine Commission (ニューヨーク市のタクシーとリムジンのコミッション) からのパブリック データで構成されるサンプル データベースを設定する方法について説明します。 このデータは、SQL Server でのデータベース内分析のために、いくつかの R および Python のチュートリアルで使用されています。 サンプル コードの実行速度を高めるために、データの代表的な 1% のサンプルを作成しました。 システムでは、データベース バックアップ ファイルが 90 MB をわずかに上回り、プライマリ データ テーブル内に 170 万行が提供されます。

この演習を完了するには、SQL Server Management Studio (SSMS)、またはデータベース バックアップ ファイルを復元し、T-SQL クエリを実行できる別のツールが必要です。

このデータセットを使用したチュートリアルとクイックスタートには、次のものがあります。

ファイルのダウンロード

サンプル データベースは、Microsoft によってホストされる SQL Server 2016 BAK ファイルです。 SQL Server 2016 以降で復元できます。 リンクを開くとすぐに、ファイルのダウンロードが始まります。

ファイル サイズは約 90 MB です。

Note

サンプル データベースを SQL Server ビッグ データ クラスターで復元するには、NYCTaxi_Sample.bak をダウンロードして、「SQL Server ビッグ データ クラスターのマスター インスタンスにデータベースを復元する」の指示に従います。

Note

Azure SQL Managed Instance の Machine Learning Services でサンプル データベースを復元するには、Azure SQL Managed Instance にデータベースを復元する方法に関するクイックスタートの指示に従ってください。NYC タクシー デモ データベース .bak ファイル https://aka.ms/sqlmldocument/NYCTaxi_Sample.bak が使用されます。

  1. NYCTaxi_Sample.bak データベース バックアップ ファイルをダウンロードします。

  2. C:\Program files\Microsoft SQL Server\MSSQL-instance-name\MSSQL\Backup または自分のインスタンスの既定の Backup フォルダーの同様のパスに、ファイルをコピーします。

  3. SSMS で、[データベース] を右クリックし、[ファイルおよびファイル グループの復元] を選びます。

  4. データベース名として「NYCTaxi_Sample」と入力します。

  5. [デバイスから] を選んでから、ファイルの選択ページを開いて NYCTaxi_Sample.bak バックアップ ファイルを選びます。 [追加] を選んで NYCTaxi_Sample.bak を選びます。

  6. [復元] チェックボックスをオンにし、[OK] を選んでデータベースを復元します。

データベース オブジェクトの確認

SQL Server Management Studio を使用して、SQL Server インスタンスにデータベース オブジェクトが存在することを確認します。 データベース、テーブル、関数、ストアド プロシージャが表示されます。

rsql_devtut_BrowseTables

NYCTaxi_Sample データベース内のオブジェクト

次の表は、NYC タクシー デモ データベースで作成されたオブジェクトをまとめたものです。

オブジェクト名です。 オブジェクトの種類 説明
NYCTaxi_Sample database データベースと 2 つのテーブルを作成します。

dbo.nyctaxi_sample テーブル: メインの NYC タクシー データセットを格納します。 ストレージとクエリのパフォーマンスを向上させるために、クラスター化列ストア インデックスをテーブルに追加します。 NYC タクシー データセットの 1% のサンプルが、このテーブルに挿入されます。

dbo.nyc_taxi_models テーブル: トレーニング済みの Advanced Analytics モデルを保持するために使用します。
fnCalculateDistance スカラー値関数 (scalar-valued function) 乗車と降車の場所間の直線距離を計算します。 この関数は、データ機能の作成モデルのトレーニングと保存R モデルの運用に使用されます。
fnEngineerFeatures テーブル値関数 (table-valued function) モデル トレーニング用の新しいデータ機能を作成します。 この関数は、データ機能の作成モデルのトレーニングと保存、R モデルの運用に使用されます。

ストアド プロシージャは、さまざまなチュートリアルに記載されている R および Python スクリプトを使用して作成されます。 次のテーブルは、さまざまなレッスンでスクリプトを実行するときに、必要に応じて NYC タクシー デモ データベースに追加できるストアド プロシージャをまとめたものです。

ストアド プロシージャ Language 説明
RxPlotHistogram R 変数のヒストグラムをプロットする RevoScaleR の rxHistogram 関数を呼び出し、バイナリ オブジェクトとしてプロットを返します。 このストアド プロシージャは、データの調査と視覚化のために使用されます。
RPlotRHist R Hist 関数を使ってグラフィックを作成し、出力をローカル PDF ファイルとして保存します。 このストアド プロシージャは、データの調査と視覚化のために使用されます。
RxTrainLogitModel R R パッケージを呼び出して、ロジスティック回帰モデルをトレーニングします。 モデルは、tipped 列の値を予測し、ランダムに選択した 70% のデータを使用してトレーニングされます。 ストアド プロシージャの出力は、テーブル dbo.nyc_taxi_models に保存されているトレーニング済みのモデルです。 このストアド プロシージャは、モデルのトレーニングと保存のために使用されます。
RxPredictBatchOutput R モデルを使用して予測を作成するトレーニング済みモデルを呼び出します。 ストアド プロシージャは、その入力パラメーターとしてクエリを受け取り、入力行のスコアを格納する数値の列を返します。 このストアド プロシージャは、可能性のある結果の予測のために使用されます。
RxPredictSingleRow R モデルを使用して予測を作成するトレーニング済みモデルを呼び出します。 このストアド プロシージャは、インライン パラメーターとして渡された個々の機能の値と共に、入力として新しい監視を受け取り、新しい監視の結果を予測する値を返します。 このストアド プロシージャは、可能性のある結果の予測のために使用されます。

データにクエリを実行する

検証手順として、クエリを実行してデータがアップロードされたことを確認します。

  1. オブジェクト エクスプローラーの [データベース] で、NYCTaxi_Sample データベースを右クリックして、新しいクエリを開始します。

  2. いくつかの単純なクエリを実行します。

    SELECT TOP(10) * FROM dbo.nyctaxi_sample;
    SELECT COUNT(*) FROM dbo.nyctaxi_sample;
    

データベースには 170 万行が含まれています。

  1. データベース内には、データセットが格納されている dbo.nyctaxi_sample テーブルがあります。 テーブルは、columnstore インデックスを追加することにより、セットベースの計算に対して最適化されています。 次のステートメントを実行して、テーブルの簡単な概要を生成します。

    SELECT DISTINCT [passenger_count]
        , ROUND (SUM ([fare_amount]),0) as TotalFares
        , ROUND (AVG ([fare_amount]),0) as AvgFares
    FROM [dbo].[nyctaxi_sample]
    GROUP BY [passenger_count]
    ORDER BY  AvgFares DESC
    

結果は、次のスクリーンショットに示すようになります。

テーブルの概要情報

次のステップ

NYC タクシー サンプル データをハンズオン学習で使用できるようになりました。