メインコンテンツまでスキップ
メインコンテンツまでスキップ

ニューヨークタクシーデータ

ニューヨークタクシーデータは、2009年以降ニューヨーク市で発生した30億件以上のタクシーおよびハイヤー車両(Uber、Lyftなど)のトリップから構成されています。このデータセットは、以下の2つの方法で取得できます:

  • S3またはGCSから直接ClickHouse Cloudにデータを挿入する
  • 準備されたパーティションをダウンロードする

tripsテーブルの作成

タクシーの乗車データ用のテーブルを作成することから始めます:

オブジェクトストレージからデータを直接ロードする

データに慣れるために、小さなサブセットを取得しましょう。データはTSVファイルとしてオブジェクトストレージにあり、s3テーブル関数を使用してClickHouse Cloudにストリームするのが簡単です。

同じデータがS3とGCSの両方に格納されているので、いずれかのタブを選択してください。

以下のコマンドは、tripsテーブルにGCSバケットから3つのファイルをストリーミングします({0..2}構文は0、1、2の値のワイルドカードです):

サンプルクエリ

挿入された行数を確認してみましょう:

各TSVファイルには約100万行があり、3つのファイルに合計3,000,317行が含まれています。では、いくつかの行を見てみましょう:

ピックアップおよびドロップオフの日付、地理座標、運賃の詳細、ニューヨークの近隣地区などのカラムがあります:

いくつかのクエリを実行しましょう。このクエリは、最も頻繁にピックアップされた上位10の近隣地区を示します:

結果は以下の通りです:

このクエリは、乗客数に基づく平均運賃を示します:

こちらは、乗客数とトリップの距離の相関を示します:

結果の最初の部分は以下の通りです:

準備されたパーティションのダウンロード

注記

以下の手順は、元のデータセットに関する情報と、セルフマネージドのClickHouseサーバー環境に準備されたパーティションをロードするための方法を提供します。

https://github.com/toddwschneider/nyc-taxi-data 及び http://tech.marksblogg.com/billion-nyc-taxi-rides-redshift.html を参照し、データセットの説明とダウンロード手順を確認してください。

ダウンロードすると、約227GBの未圧縮データがCSVファイルで得られます。ダウンロードには、1Gbitの接続で約1時間かかります(s3.amazonaws.comからの並行ダウンロードは、少なくとも1Gbitチャンネルの半分を回復します)。 一部のファイルは完全にダウンロードされない可能性があります。ファイルサイズを確認し、疑わしいものは再ダウンロードしてください。

参考

以下のクエリを実行する場合は、完全なテーブル名 datasets.trips_mergetree を使用する必要があります。

単一サーバー上の結果

Q1:

0.490秒。

Q2:

1.224秒。

Q3:

2.104秒。

Q4:

3.593秒。

以下のサーバーが使用されました:

Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz 2基、物理コア合計16、RAM 128 GiB、8x6 TB HDでRAID-5構成

実行時間は3回の実行の中で最良のものです。ただし、2回目の実行から、クエリはファイルシステムキャッシュからデータを読み取ります。これ以降のキャッシュは発生せず、各実行でデータは読み出され、処理されます。

三台のサーバーでのテーブルの作成:

各サーバーで:

ソースサーバーで:

次のクエリはデータを再分配します:

これには2454秒を要します。

三台のサーバーで:

Q1: 0.212秒。 Q2: 0.438秒。 Q3: 0.733秒。 Q4: 1.241秒。

驚きはありません。クエリは線形にスケールします。

140台のサーバークラスターからの結果もあります:

Q1: 0.028秒。 Q2: 0.043秒。 Q3: 0.051秒。 Q4: 0.072秒。

この場合、クエリ処理時間は主にネットワーク遅延によって決定されます。 クラスターが位置するデータセンターとは異なる場所にあるクライアントでクエリを実行したため、約20msの遅延が加わりました。

サマリー

サーバー数Q1Q2Q3Q4
1, E5-2650v20.4901.2242.1043.593
3, E5-2650v20.2120.4380.7331.241
1, AWS c5n.4xlarge0.2491.2791.7383.527
1, AWS c5n.9xlarge0.1300.5840.7771.811
3, AWS c5n.9xlarge0.0570.2310.2850.641
140, E5-2650v20.0280.0430.0510.072