TiDBサンプルデータベースをインポートする

TiDBマニュアルで使用される例は、Capital Bikeshare Data License Agreementで公開されたCapital Bikeshare system dataを使用する。

すべてのデータファイルをダウンロードする

システムデータは年単位の.zipファイルとしてダウンロードできる。すべてのファイルをダウンロードして展開するには、約3GBのディスク容量が必要である。bashスクリプトを使って2010年から2017年までのすべてのファイルをダウンロードするには:

mkdir -p bikeshare-data && cd bikeshare-data

curl -L --remote-name-all https://s3.amazonaws.com/capitalbikeshare-data/{2010..2017}-capitalbikeshare-tripdata.zip
unzip \*-tripdata.zip

データをTiDBにロードする

システムデータは次のスキーマを使用してTiDBにインポートできる。

CREATE DATABASE bikeshare;
USE bikeshare;

CREATE TABLE trips (
 trip_id bigint NOT NULL PRIMARY KEY AUTO_INCREMENT,
 duration integer not null,
 start_date datetime,
 end_date datetime,
 start_station_number integer,
 start_station varchar(255),
 end_station_number integer,
 end_station varchar(255),
 bike_number varchar(255),
 member_type varchar(255)
);

この例では、LOAD DATAコマンドを使用してファイルを個別にインポートするか、次のようにbashループを使用してすべてのファイルをインポートできる。

SET tidb_dml_batch_size = 20000;
LOAD DATA LOCAL INFILE '2017Q1-capitalbikeshare-tripdata.csv' INTO TABLE trips
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES
(duration, start_date, end_date, start_station_number, start_station,
end_station_number, end_station, bike_number, member_type);

すべてのファイルをインポートする

すべての*.csvファイルをbashループでTiDBにインポートするには:

for FILE in *.csv; do
 echo "== $FILE =="
 mysql bikeshare --local-infile=1 -e "SET tidb_dml_batch_size = 20000; LOAD DATA LOCAL INFILE '${FILE}' INTO TABLE trips FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (duration, start_date, end_date, start_station_number, start_station, end_station_number, end_station, bike_number, member_type);"
done;

Import Example Database 最終更新日 2022-06-06 17:02:15: remove aliases for v6.1 docs (#8795)