1

私はNoSQLとCassandraにかなり慣れていませんが、アーキテクチャ委員会からこれを使用するように言われました。RDBMSモデルをnoSQLに変換する方法を理解したいだけです。

ユーザーがExcelまたはcsvファイルからデータベースにデータをインポートする必要があるデータベースがあります。このファイルには、毎回異なる列が含まれる場合があります。

たとえば、Excelファイルのデータは次のようになります。

Name| AName| Industry| Interest | Pint |Start Date | End date

x | 111-121 | IT | 2 | 1/1/2011 | 1/2/2011

x | 111-122 | hotel | 1 | "" | ""

y| 111-1000 | IT | 2 | 1/1/2011 | 1/2/2011

これをアップロードした後、次のExcelファイルは次のようになります

Name| AName| Industry| Interest | Pint |Start Date | isTrue | isNegative

x | 111-121 | IT | 2 | 1/1/2011 | 1/2/2011 | yes | no

x | 111-122 | hotel | 1 | "" | no | no

y| 111-1000 |health | 2 | 1/1/2010 | yes|""

データをインポートするときにどの列を作成するのか、事前にはわかりません。私はnoSQLと完全に混同していて、テーブル構造がわからないときにデータをインポートする方法でこれをどのように処理するかを理解できません

4

2 に答える 2

0

いくつかの noSQL パターンを確認してください。Pat Helland による「Building on Quicksand」を読むことを強くお勧めします。

いくつかの良いパターン (PlayOrm の使用の有無にかかわらず)... http://buffalosw.com/wiki/Patterns-Page/

于 2013-03-22T12:26:12.790 に答える
0

列ファミリー (「テーブル」の cassandra) は行で構成されているという基本的な事実から始めます。各行には、行キーといくつかのキーと値のペア (列と呼ばれる) があります。行の特定の列では、列の名前がペアのキーであり、列の値がペアの値です。ある行にある名前の列があるからといって、他の行にもその名前の列があるとは限りません。

内部的には、行キー、列名、および列値はバイト配列として格納されるため、シリアライザーを使用してプログラム データをバイト配列に変換し、再度戻す必要があります。

行キー、列名、および列値をどのように定義するかは、あなた次第です。

1 つの方法は、CF の行を Excel の行に対応させることです。一意の ID を提供する 1 つの Excel 列を特定し、それを行キーに格納する必要があります。残りの Excel 列は、cassandra 列に 1 対 1 で格納できます。これにより、ほとんどの列名に非常に柔軟に対応できますが、どこかに一意のキー値が必要です。一意のキーの要件は、使用するすべてのストレージ スキームに対して常に保持されます。

他のストレージ スキームもありますが、それらはすべて、行キーとは何か、Excel データをキーと値のペアに分割する方法を Excel で定義する必要があります。

于 2013-03-21T19:57:05.517 に答える