この記事では、MariaDBからTreasure Dataに直接データをインポートできるMariaDB用データコネクターの使用方法について説明します。
- Treasure Dataの基本知識
- MariaDBの基本知識
- Treasure Dataコマンドラインの基本知識
最新のTD Toolbeltをインストールできます。
$ td --version以下の例のように、MariaDBアカウントのアクセス情報を含む設定ファイル(例:seed.yml)を準備します。
in:
type: mysql
host: "hostname"
port: 3306
user: "myuser"
password: "mypassword"
database: "mydatabasename"
table: "mytablename"
select: "*"
out:
mode: replaceconnector:guessを使用します。このコマンドは、対象ファイルを自動的に読み取り、ファイル形式を賢く推測します。
$ td connector:guess seed.yml -o load.ymlload.ymlを開くと、ファイル形式、エンコーディング、カラム名、型などを含む、推測されたファイル形式の定義が表示されます。
in:
{type: mysql,host: "hostname",port: 3306,user: "myuser",password: "mypassword", database: "mydatabasename", table: "mytablename",select: "*"}
filters: []
out: {mode: replace}
exec: {}td connector:previewコマンドを使用して、インポートされるデータをプレビューできます。
$ td connector:preview maria_import.ymlロードジョブを送信します。データサイズによっては数時間かかる場合があります。ユーザーは、データが保存されるデータベースとテーブルを指定する必要があります。
Treasure Dataのストレージは時間でパーティション分割されているため、--time-columnオプションを指定することをお勧めします(データパーティショニングも参照してください)。
このオプションが指定されていない場合、データコネクターは最初のlongまたはtimestampカラムをパーティショニング時間として選択します。--time-columnで指定するカラムの型は、longまたはtimestampのいずれかである必要があります。
データに時間カラムがない場合は、add_timeフィルターオプションを使用して追加できます。詳細はadd_timeフィルタープラグインを参照してください。
td connector:issue maria_import.yml \
--database td_sample_db \
--table td_mariadb_table \
--time-column created_at上記のコマンドは、データベース(td_sample_db) と テーブル(td_maria_table) が既に作成されていることを前提としています。データベースまたはテーブルがTDに存在しない場合、このコマンドは成功しません。したがって、データベースとテーブルを手動で作成するか、td connector:issueコマンドで--auto-create-tableオプションを使用してデータベースとテーブルを自動作成してください。
td connector:issue maria_import.yml \
--database td_sample_db \
--table td_mariadb_table \
--auto-create-table -w定期的なMariaDBインポートのために、定期的なデータコネクターの実行をスケジュールできます。Treasure Dataのスケジューラーの負荷分散と動作は、高可用性を実現するように最適化されています。Treasure Dataのスケジューラーを使用することで、ローカルデータセンターにcronデーモンを配置する必要がなくなります。
td connector:createコマンドを使用して、新しいスケジュールを作成できます。スケジュールの名前、cron形式のスケジュール、データが保存されるデータベースとテーブル、およびデータコネクター設定ファイルを指定します。これらの値は必須です。
$ td connector:create \
daily_mariadb_import \
"10 0 * * *" \
td_sample_db \
td_mariadb_table \
load.ymlcronパラメータは、@hourly、@daily、@monthlyの3つのオプションも受け入れます。
デフォルトでは、スケジュールはUTCタイムゾーンで設定されます。-tまたは—timezoneオプションを使用して、タイムゾーンでスケジュールを設定できます。--timezoneオプションは、'Asia/Tokyo'、'America/Los_Angeles'などの拡張タイムゾーン形式のみをサポートします。PST、CSTなどのタイムゾーン略語はサポートされておらず、予期しないスケジュールになる可能性があります。