DSPL 生成

DSPL Gen は、コマンドライン ユーティリティで CSV データテーブルをシンプルな DSPL データセットに変換このツールは入力を解析し、 必要なデータテーブルをすべて作成し、DSPL XML ファイルをレイアウトします。 その結果、ほぼ完全なデータセットが "テンプレート"アップロードや変換の前に軽微な修正を加えるだけで 可視化です。

DSPL Gen の背後にある基本的な前提は、 入力用の CSV ファイルは 1 つの DSPL コンセプトに対応し、各行は ディメンションの組み合わせに対して 1 つの観測値。このツールの仕組み 列の反復処理を行い、それぞれに適切なメタデータを確立する 列 / コンセプト(例: ID、種類、ディメンションか指標か、 必要なコンセプト定義とスライスをすべて生成します。 表します

DSPL Gen の実行

構文

注: 以下の手順は、 すでに インストール手順 参照してください。

DSPL Gen を実行するには、システムのターミナル / プロンプトに移動して、次のように入力します。

python dsplgen.py -o [output path] [path to CSV file] 

ここで、かっこで囲まれた用語は次のように置き換えます。

  • [output path]: 使用するディレクトリのパス 出力ファイルを指定しますこのディレクトリはすでに存在している必要があります 必要があります。
  • [path to CSV file]: 入力 CSV ファイルのパス。詳しくは、 詳しくは、以下のセクションをご覧ください。 指定する必要があります。

-o [output path] コンポーネントは省略可能です。省略した場合は、 出力ファイルは現在のディレクトリに配置されます。

ツールが実行され、CSV ファイルに対して反復処理が行われ、コンセプトが抽出されます。 スライス テーブルの生成などです。エラーが見つからなければ、XML は 1 つ以上の CSV ファイルが出力ディレクトリに書き込まれます。

最後に、任意のテキスト エディタで XML ファイルを開き、 保存します。少なくとも、名前、メールアドレス、 値、説明、ツールによってマークされた ** INSERT ... ** 表記。

簡単な例

あるケースの総数を示す CSV があり、 月、国、年齢層別に分類された疾患です。わかりやすくするため、 各ディメンションに次の 2 つの値があるとします。

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,US,young,23131
01/2000,MX,young,12311
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,US,young,22990
02/2000,MX,young,12591

上記の入力に対してツールを実行すると、次の 4 つのファイルが生成されます。

  • dataset.xml: DSPL XML テンプレート
  • country_table.csv: country の値 コンセプト
  • age_group_table.csv: age_group のコンセプト
  • slice_0_table.csv: データセット スライスのテーブル( 入力テーブル(並べ替えを除く)

このケースでは、このツールはすべての単語の 列の型と形式について学びましたあとは、必要な作業は データセットのメタデータ内のさまざまな名前、説明、URL を編集します。

入力 CSV にアノテーションを付ける

基本オプション

多くの場合、上記の例のように、DSPL Gen は基本的な 例: 各列のメタデータを型、形式、それが いずれかを選択できますただし 間違えたり 正しく推測したりしても 望ましい動作を実行しません。

このようなケースに対処するために、このツールでは DSPL 生成の追加をサポートしています。 オプション / 「ヒント」指定します。これらの構文は、 次のようになります。

column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...

特に、オプション リストは 角かっこが付きます。 各種設定はセミコロンで区切ります。各オプションは オプション名、等号、およびオプション値で構成されます。

DSPL Gen は現在、次の基本オプションをサポートしています。

オプション 説明 デフォルト
type この列の DSPL データ型。date のいずれかにする必要があります。 floatinteger、または string データから推測
format 日付列の形式。DSPL では、この形式は を使用してエンコードされます。 Joda DateTime 標準 データから推測
slice_role スライスにおけるこの列の役割次のいずれかにする必要があります。 dimension または metric 列の型が date の場合、または dimension string、それ以外の場合は metric
concept この列が表す標準的なコンセプト。例: geo:country、指定されている場合、コンセプトがインポートされ、 XML ファイルに作成されます。 なし
extends この列で定義される標準的なコンセプト。例: entity:entity なし
parent

この列の親コンセプト。この親はディメンションである必要があります データセット内で定義されたコンセプト(すなわち、インポートされないもの)指定されている場合、 この情報を使用して、Terraform でコンセプト階層を 見てみましょう。

各子インスタンスの親は 1 つだけです。複数の場合 親の値が検出された場合は、ツールでエラーが発生します。

なし

値の統合

「ヒント」には、基本的なオプションを選択して DSPL Gen は、スライスのロールアップもサポートしています(単一テーブルの場合)。 自動的に追加のテーブルを作成できます。 分割しますたとえば、入力テーブルが 時間以外の 3 つのディメンション(例:dimension1, dimension2dimensions3 など)を使用して、 追加のスライスも作成します。dimension1 だけにします。 のみ dimension2dimension1 dimension2 のみなど

これらのスライスを追加すると、データセットを探索しやすくなります 作成に必要なディメンションフィルタの数が減るため 可視化です。その一方で、このプロセスでは「新しい」 データが元のファイル内に見つからなければ、エラーが発生する可能性があります。 正しく使用されている。公開する前に、集計された数値を 見てみましょう。

統合プロセスは、いくつかの追加オプションを 次のように入力できます。

オプション 説明 デフォルト
aggregation 複数の値を組み合わせるときに使用する集計方法 この列のAVGCOUNTMAXMIN、または SUM専用 これは指標にとって有用です。 SUM
rollup 値が true の場合、次のコンセプトは この列は「統合」されます(つまり、集約されたもの) ディメンションの概念に対してのみ意味を持ちます。 False
total_val この列の値が、この期間中に保持される行を示す 列が統合されます。ディメンションの概念に対してのみ意味を持ちます。 None

次に、DSPL Gen は次のアルゴリズムを使用してロールアップを計算します。

  • rollup タグの値を使用して、考えられるすべての値を計算します。 列の組み合わせ
  • 組み合わせごとに次の操作を行います。 <ph type="x-smartling-placeholder">
      </ph>
    • 統合した列に total_val パラメータがある場合 その値で行をフィルタしますそれ以外の場合は、すべての行を選択する
    • 統合した列を削除する
    • 残りのディメンション列の値で行をグループ化する
    • 指標で指定されたメソッドを使用して、各指標を集計する aggregation パラメータ
    • 結果のスライスと関連テーブルを作成する

各グループに値が 1 つだけで、 集計関数が SUM(デフォルト値)に設定されている場合、 ソーステーブルと生成されたテーブルの指標値は同じになる(新しい値はなくなる) 生成されます。したがって、total_val パラメータを使用して、 “合計”は 1 つだけなので他の組み合わせごとに行を ディメンションを使用すると、事前に計算された集計をソースに直接保存できます。

警告: 生成されるスライスの数は ロールアップ列 2 つに相当します。このオプションを大規模な 実行時間が非常に長くなったり 説明します。

高度な例

前の例と同じ入力データがあり、 次の国を集計するようになりました。

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,total,old,152012
01/2000,US,young,23131
01/2000,MX,young,12311
01/2000,total,young,241011
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,total,old,211310
02/2000,US,young,22990
02/2000,MX,young,12591
02/2000,total,young,240131

各年齢層の合計が、国の値の合計と一致しない場合があります たとえば 方法論や リストに記載されていない他の国の国と地域が含まれます。

次に、次のような追加の情報を含む DSPL データセットを作成します。 機能:

  1. 「ロールアップ」国ごとにデータを表示します 症例(年齢層別のみ)
  2. 正規の geo:country を使用する country 列に対して自動的に それらのフルネームや場所などを
  3. disease_cases のコンセプトを quantity:amount に拡張します。 これにより、XML ファイルに単位情報を(手動で)追加できるようになります。

これを行うには、入力 CSV のヘッダー行を次のように変更します。

date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]

ツールを再度実行すると、追加のスライス テーブルが得られます。 国による区別がなくなります。

date,age_group,disease_cases
01/2000,old,152012
02/2000,old,211310
01/2000,young,241011
02/2000,young,240131

合計値と total_val タグがある場合、次のようになります。 各年齢層の合計が計算されます

また、XML ファイル内の disease_cases の定義には、 必要に応じて quantity:amount の拡張機能が含まれるようになりました。「 country の定義は XML ファイルから削除されます。 代わりにインポートされたコンセプトを使用します

さまざまな名前、説明、単位情報を入力したら データセット バンドルを zip 圧縮して Public Data Explorer にアップロードし、 可視化です。