sql >> データベース >  >> RDS >> Oracle

データをオラクルからHDFSに移動し、処理してHDFSからTeradataに移動します

    いくつか質問があるようですので、分解してみましょう。

    HDFSへのインポート

    Sqoop を探しているようです 。 Sqoopは、HDFSとの間でデータを簡単に転送できるツールであり、Oracleを含むさまざまなデータベースにネイティブに接続できます。 Sqoopは、OracleJDBCシンドライバと互換性があります。 OracleからHDFSに転送する方法は次のとおりです。

    sqoop import --connect jdbc:oracle:[email protected]:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir
    

    詳細情報:こちら およびこちら 。分析を行うのに便利なSqoopを使用してHiveテーブルに直接インポートすることもできることに注意してください。

    処理

    お気づきのように、データは最初はリレーショナルであるため、SQLに似た構文に精通している可能性があるため、Hiveを使用して分析を行うことをお勧めします。 Pigはより純粋な関係代数であり、構文はSQLに似ていません。好みの問題ですが、どちらのアプローチでも問題なく機能するはずです。

    Sqoopを使用してデータをHiveに直接インポートできるため、データはインポート後に直接処理できるようになっている必要があります。

    Hiveでは、クエリを実行して、結果をHDFSに書き込むように指示できます。

    hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."
    

    TeraDataへのエクスポート

    Clouderaは昨年、TeradataforSqoopのコネクタをここ 、これはまさにあなたが望むもののように見えるので、あなたは見てみる必要があります。方法は次のとおりです。

    sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output
    

    すべてはあなたが望むどんな期間でも間違いなく実行可能です、結局重要なのはあなたのクラスターのサイズです、あなたがそれを速くしたいならそして必要に応じてあなたのクラスターをスケールアップしてください。 HiveとSqoopの良いところは、処理がクラスター内で分散されるため、スケジュールを完全に制御できることです。



    1. ユーザーごとに一意の制約を作成する

    2. レコードを挿入する方法、またはレコードがすでに存在する場合は更新する方法は?

    3. チェックボックスでデータベースを更新

    4. 複数のテーブルを使用してHibernateでツリー構造をレンダリングするにはどうすればよいですか?