1

私は以下の状況に助けが必要です。MysqlからCassandraへのデータ移行

私は、MySQLのテーブルを持っている: -

CREATE TABLE employees (
    emp_no  INT    NOT NULL, -- AUTO_INCREMENT?? 
    birth_date DATE   NOT NULL, 
    first_name VARCHAR(14)  NOT NULL, 
    user_id  INT    NOT NULL, -- This is primary key of another table. 
    PRIMARY KEY (emp_no)); 

このテーブルには、約20000レコードを持っています。

私はこのMySQLテーブルを次のようなカッサンドラテーブルに転送します。

CREATE TABLE employees (
    emp_no  uuid, 
    birth_date timestamp, 
    first_name text, 
    user_id uuid, 
    PRIMARY KEY (emp_no)); 

これで、MySQLテーブルからすべての20000レコードをCassandraテーブルにエクスポートします。

user_id列は別の表の主キーで、first_name列もuser_id列にマップされます。

私はこれをどのように達成できるか教えてください。

以下は、私が使用しているdatastaxのバージョンの詳細です。 [cqlsh 5.0.1 |カサンドラ2.1.15.1403 | DSE 4.8.9 | CQL仕様3.2.1 |ネイティブプロトコルv3]

MySQLからCassandraへのデータ移行には、可能な限り最良の方法を提案してください。

答えて

0

参照してください:Migrate RDBMS to Cassandra

さらに詳しい情報:https://docs.datastax.com/en/cql/3.1/cql/cql_reference/copy_r.html

CSVにあなたのMySQLのデータを変換し、カサンドラのテーブルにインポートしてください。これは私がこれをチェックして動作します。

+0

これを確認しましたが、詳細はわかりません。私はステップを使って簡単なシナリオを教えてください。 Thanks –

0

あなたの場合、上記のdatastaxのシナリオは素晴らしいです。代わりにあなたのためにそれを行う小さなJavaプロジェクトを作成することです。あなたのケースでは、mysqlテーブルからcassandraテーブルへのモデルは同じです。だから、次の操作を行うことができます:HibernateでJavaプロジェクトを作成します

  1. とdatastaxドライバ
  2. は、HibernateのXMLマッピングを通じてMySQLへの従業員のために
  3. 地図の従業員をJavaクラスを作成します(その後、私ができるので、私は、XMLを好みます
  4. 使用datastaxバッチであなたの従業員を持って休止状態datastaxドライバの注釈
  5. 使ってセッションをカサンドラテーブルに同じカサンドラのためのJavaモデル)
  6. 地図の従業員クラスを使用しますドライバーは、バッチ内のすべての従業員をcassandraに保存します。

あなたの従業員クラスは、Javaがあなたの唯一のオプションではありません。もちろん、この

@Table(keyspace = "your_keyspace", name ="employees") 
public class Employee 
{ 
    @PartitionKey(0) 
    @Column(name = "emp_no") 
    protected UUID employeeNo; 

    @Column(name = "birth_date") 
    protected Timestamp birthDate; 

    @Column(name = "first_name") 
    protected String firstName; 

    @Column(name = "user_id") 
    protected UUID userId; 
} 

のようになります。 Datastaxドライバは、C#やPythonなどの多くの言語で使用できます。

+0

mysqlテーブルをEXCELにエクスポートしてからCassandraテーブルに読み込むことはできません。それはいい考えですか?そうではありませんか? と失敗の可能性のあるシナリオは何でしょうか。 –

+0

これをどうやって計画していますか?私はこのようにテーブルを充填しようとしたことはありません。詳細を教えていただけますか? (私は、上記の答えで記述する方法は、将来のテーブルの移行のために再利用できるので、一度それを作成し、それが必要なときにいつでも使用できると言うことにしましょう) – Reveka

+0

csvにmysqlテーブルを変換し、cassandraにインポート – Ish