2016-10-17 15 views
0

クラウドにソースデータベースを持つウェアハウスを作成しました 最初に約40,000件のレコードでスキーマ発見プロセスを実行しました。このクラウドデータベースは約2百万のレコードで構成されています。 ここで問題となっているのは、DashDBの_OVERFLOWテーブルに、「[却下されたスキーマには列がありません。文書がインポートされていません。]」などのエラーのあるレコードが多数存在するということです(クラウドdashdb同期の問題

)。

私には、実際にdbcopyの結果であるクラウドデータベースは、ドキュメントに部分的な部分が含まれているため、部分的に値が雲の中で作成され、部分的に "40000000-5fffffff "スキーマ発見プロセスによってddが発見されず、未知の部分を持つすべてのドキュメントがcloudant-dashdb syncによって拒否されています。

誰もがこれを解決するための最良のオプションは、単純なトリックで..です

答えて

0

それを解決するためにどのように任意のアイデアを持っていない:あなたはあなたの中に作成する構造を正確に一つの文書をスキーマ検出アルゴリズムを養いますdashDBターゲット。

このような「テンプレート」ドキュメントをあらかじめ作成することができれば、そのアルゴリズムを発見してdashDBにロードするようにしてください。 CloudantからdashDBへの連続レプリケーションを使用すると、dbcopyでcloudant-dashdb同期のソースとして機能するデータベースに実際のドキュメントをロードできます。

0

最初に約40,000レコードのスキーマ発見プロセスを実行しました。 私たちのデータベースは約2百万のレコードで構成されています

これら2百万のすべてが同じスキーマを共有していますか?私は信じていない。

「[列が発見スキーマに存在しません。文書がインポートされていない。]」

それはあなたの最初の40'000記録時にスキャンアプリケーションが持つ任意のドキュメントを見つけることができませんでしたことを意味しそのフィールド。

のは、あなたのCloudant DB内の文書のシーケンスを言ってみましょうです:スキーマスキーマBと一致

  • 800'000ドキュメントスキーマと一致
  • 700'000ドキュメントを一致

    • 500'000ドキュメントC

    あなたの発見プロセスはちょうど最初の40'000にチェックされています。スキーマBとCには決して行きませんでした。

    発見プロセスを再実行して2百万のレコードをすべて処理することをお勧めします。時間はかかりますが、すべてのフィールドが検出されることが保証されます。