6

Amazon RedShift で巨大なデータセットの集計を行い、MySQL には比較的少量のデータがあります。RedShift の一部の結合では、MySQL のデータが必要です。MySql データを RedShift に同期する最良の方法は何ですか? オラクルのリモートビューのようなものは赤方偏移にありますか? または、プログラムで MySql にクエリを実行し、RedShift で挿入/更新する必要がありますか?

4

4 に答える 4

3

Redshift での結合に MySQL データが必要な場合、通常はデータを一方から他方に送信するだけです。

これは次のことを意味します。

  1. Redshift: 類似のテーブル スキーマの作成 (Redshift/PSQL の特殊性を念頭に置いて)
  2. MySQL: データ テーブルのダンプ (csv 形式)
  3. エクスポートを圧縮して S3 に送信する
  4. Redshift: テーブルを切り捨て、COPY を使用してすべてのデータをインポートする

ステップ 2 から 4 はスクリプト化でき、必要に応じて、または定期的に Redshift に新しいデータを送信できます。

于 2013-10-16T23:16:48.790 に答える
0

オラクルの「リモートビュー」とは何ですか?

とにかく、テーブルから CSV ファイルにデータを抽出できる場合は、もう 1 つのスクリプト オプションがあります。Python/boto/psycopg2 コンボを使用して、CSV ロードを Amazon Redshift にスクリプト化できます。

私のMySQL_To_Redshift_Loaderでは、次のことを行います。

  1. MySQL から一時ファイルにデータを抽出します。

    loadConf=[ db_client_dbshell ,'-u', opt.mysql_user,'-p%s' % opt.mysql_pwd,'-D',opt.mysql_db_name, '-h', opt.mysql_db_server]    
    ...
    q="""
    %s %s
    INTO OUTFILE '%s'
    FIELDS TERMINATED BY '%s'
    ENCLOSED BY '%s'
    LINES TERMINATED BY '\r\n';
    """ % (in_qry, limit, out_file, opt.mysql_col_delim,opt.mysql_quote)
    p1 = Popen(['echo', q], stdout=PIPE,stderr=PIPE,env=env)
    p2 = Popen(loadConf, stdin=p1.stdout, stdout=PIPE,stderr=PIPE)
    ...
    
  2. boto Python モジュールとマルチパート アップロードを使用して、データを圧縮して S3 にロードします。

    conn = boto.connect_s3(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)
    bucket = conn.get_bucket(bucket_name)
    k = Key(bucket)
    k.key = s3_key_name
    k.set_contents_from_file(file_handle, cb=progress, num_cb=20, 
    reduced_redundancy=use_rr )
    
  3. psycopg2 COPY コマンドを使用して、データを Redshift テーブルに追加します。

    sql="""
    copy %s from '%s' 
    CREDENTIALS 'aws_access_key_id=%s;aws_secret_access_key=%s' 
    DELIMITER '%s' 
    FORMAT CSV %s 
    %s 
    %s 
    %s;""" % (opt.to_table, fn, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,opt.delim,quote,gzip, timeformat, ignoreheader)
    
于 2016-04-27T21:19:29.000 に答える
-3

Redshift に Mysql データをロードするこの最も簡単な方法を確認してください。最初のデータ スナップショットを redshift にロードするだけの場合は、その無料のソリューションを試してください。さらに、スキーマの移行、サイド バイ サイド クエリ コンソール、およびロード プロセス全体の統計レポート (グラフ付き) が得られます。

于 2015-11-17T14:41:26.630 に答える