mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 19:02:04 +00:00
3.1 KiB
3.1 KiB
slug | sidebar_position | sidebar_label | title |
---|---|---|---|
/ja/engines/table-engines/integrations/ExternalDistributed | 55 | ExternalDistributed | ExternalDistributed |
ExternalDistributed
エンジンは、リモートサーバーのMySQLまたはPostgreSQLに保存されているデータに対してSELECT
クエリを実行することを可能にします。引数としてMySQLまたはPostgreSQLエンジンを受け入れ、シャードが可能です。
テーブルの作成
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
...
) ENGINE = ExternalDistributed('engine', 'host:port', 'database', 'table', 'user', 'password');
CREATE TABLEクエリの詳細な説明を参照してください。
テーブル構造は元のテーブル構造と異なることがあります:
- カラム名は元のテーブルと同じでなければなりませんが、これらのカラムの一部のみを任意の順序で利用できます。
- カラム型は元のテーブルと異なることがあります。ClickHouseは値をClickHouseのデータ型にキャストしようとします。
エンジンパラメータ
engine
— テーブルエンジンMySQL
またはPostgreSQL
。host:port
— MySQLまたはPostgreSQLサーバーアドレス。database
— リモートデータベース名。table
— リモートテーブル名。user
— ユーザー名。password
— ユーザーパスワード。
実装の詳細
複数のレプリカをサポートしており、|
でリストし、シャードは,
でリストする必要があります。例:
CREATE TABLE test_shards (id UInt32, name String, age UInt32, money UInt32) ENGINE = ExternalDistributed('MySQL', `mysql{1|2}:3306,mysql{3|4}:3306`, 'clickhouse', 'test_replicas', 'root', 'clickhouse');
レプリカを指定する際には、読み込み時にシャードごとに利用可能なレプリカの一つが選択されます。接続が失敗した場合、次のレプリカが選択され、この処理はすべてのレプリカに対して行われます。すべてのレプリカで接続試行が失敗した場合、同じ方法で何度か試行が繰り返されます。
任意の数のシャードと各シャードに対する任意の数のレプリカを指定できます。
関連項目