FlyData Sync システム・スペック (version 0.3.24)

制限事項

Primary Keys(主キー)

FlyData Sync がレプリケートするMySQLのテーブルには、すべて主キー(primary key) が設定されている必要があります。

カラム名の予約語

Redshift では下記の名前はシステムカラム名として、予約語になっています。これらの名前はユーザテーブルでは使用できません。

  • oid
  • tableoid
  • xmin
  • cmin
  • xmax
  • cmax
  • ctid
  • deletexid
  • insertxid

これらの名前が、ソースとなるデータベースで使用されていた場合、FlyData はRedshift上の対応するカラム名として “_” を付与します。
(例: “oid” -> “_oid”)

テーブル、カラム名の大文字/小文字の区別

Redshift はテーブルやカラム名に大文字小文字の区別をサポートしていません。大文字 / 小文字の区別のある名前については、Redshift上ではすべて小文字として扱われます。

カラム名の特殊文字

MySQLのカラム名として許される文字のうち、以下の文字はRedshift/FlyDataではサポートされていません。

  • 非ASCII文字 – RedshiftではASCII以外の文字をカラム名として使用できません
  • ダブルクウォート(“) – Redshiftではダブルクウォート文字をカラム名として使用できません
  • ピリオド(.) – FlyDataではピリオド文字をカラム名として使用できません

FlyDataがRedshiftにテーブルを作成するとき、これらの文字はアンダースコアに置き換えられます。例えば、”住所.ID” というMySQLのカラムは、Redshift上では”___ID” となります。

FOREIGN KEY(外部キー)制約

外部キー制約は FlyData も Redshift もサポートしていません。外部キー制約を含むクエリは無視され、Redshift では何の影響も与えません。
また、ON {DELETE|UPDATE} もまたサポートされていません。制約のあるテーブルを同期する場合、MySQL と Redshift の同期にずれが発生する可能性があります。

ALTER TABLE RENAME

今のところ、FlyData は ALTER TABLE RENAME コマンドをサポートしていません。そのクエリが実行された場合、ユーザは新しい名前でテーブルを再登録し、再同期する必要があります。

ALTER TABLE CHANGE COLUMN と ALTER TABLE MODIFY COLUMN

カラム型が変更されない限り、 ALTER TABLE CHANGE COLUMN はサポートされます。Redshift は既存カラムの変更を許可していません。
このクエリが実行された場合、そのテーブルの同期を一度リセットする必要があります。

ALTER TABLE {ADD|DROP} PRIMARY KEY

Redshift は ALTER TABLE {ADD|DROP} PRIMARY KEY をサポートしません。 このクエリが実行された場合、そのテーブルの同期をリセットする必要があります。

ALTER TABLE ORDER BY

ALTER TABLE ODER BY はサポートされません。このクエリが実行された場合、そのテーブルの同期をリセットする必要があります。

CREATE TABLE

CREATE TABLE はサポートされません。ユーザはFlyData Consoleでデータエントリを追加し、そのテーブルを手動で作成する必要があります。

DROP TABLE

DROP TABLE はサポートされません。このクエリによって削除されるテーブルは Redshift 上では残されたままとなります。

PARTITION クエリ

FlyData は ALTER TABLE PARTITION をエラーなしで許可し、破棄します。しかし、いくつかのクエリは MySQLとRedshift 間のデータ不整合の原因となります。このようなクエリが実行された場合、それらのテーブルの同期をリセットする必要があります。
以下のクエリがデータ不整合の原因となります。

  • DROP PARTITION
  • TRUNCATE PARTITION

以下のクエリはデータ不整合の原因とはならず、安全に実行可能です。

  • ADD PARTITION
  • OPTIMIZE PARTITION
  • ANALYZE PARTITION
  • CHECK PARTITION
  • COALESCE PARTITION
  • REORGANIZE PARTITION
  • REMOVE PARTITIONING
ストレージエンジン

FlyData では InnoDB ストレージエンジンのみ、サポートしています。他のストレージエンジンはサポートされません。ただし、Memory ストレージエンジン以外については、いくつかの制限事項を除けば動作します。Memory ストレージエンジンを使用したテーブルの同期は、そのMySQLデータベースがシャットダウンまたは再起動した場合に、破損してしまいます。

View

View は同期できません。FlyData Sync では物理テーブルのみサポートしています。

ALTER TABLEのサブクエリの許可と無視

以下のALTER TABLEのクエリは無視され、Redshift には影響を与えません。

  • PARTITION queries (ADD, OPTIMIZE, ANALYZE, CHECK, COALESCE, REORGANIZE, REMOVE PARTITIONING
  • DROP FOREIGN KEY
  • DROP {KEY|INDEX}
  • ADD {FULLTEXT|SPATIAL} {KEY|INDEX}
  • {ENABLE|DISABLE} KEYS
  • ALTER COLUMN SET DEFAULT
  • ALTER COLUMN DROP DEFAULT
  • RENAME {KEY|INDEX}
  • FORCE
  • ALGORITHM
  • LOCK
  • ADD UNIQUE

Redshiftへのデータ移行を自動化しませんか?

FlyDataを活用してリアルタイムでのビッグデータ分析を実現しましょう!