インポート設定ページでは、ETL(抽出 - 変換 - ロード)操作を制御し、インポートされるデータの構造を検証できます。主なタスクは、表形式データの属性インジケータ、日付/時間ディメンションへのマッピングを定義することです。

以下の調整とアクションが利用可能です:

  • 最初の行はヘッダー: 最初の行のテキストを対応する列の名前として使用します; プレーンテキスト(クリップボード)、CSV、Excelのみ
  • 除外された行: インポートされたファイルの先頭から一部の行を除外できます(データではなく、追加情報など); プレーンテキスト(クリップボード)、CSV、Excelのみ
  • エンコーディング: ソースファイルに適切なエンコードを選択します(UTF-8、ISO-8859-1、Win-1250、Win-1252、Autoが利用可能); プレーンテキスト、CSV、XMLのみ

  • 区切り記号: 自動検出(最もよく使用される区切り記号はセミコロン";")、それ以外の場合は各列を区切る文字を選択します(カンマ、タブ、セミコロン、スペース、垂直バー、カスタム); プレーンテキスト(クリップボード)、CSVのみ

  • 空のセルを埋める: 通常、インポートファイル全体に対して、または特定の列に対して置換を個別に実行できます。

  • インポートテンプレートの適用: 以下の「テンプレートのインポート」の章を参照してください。

  • デフォルト設定を使用: すべてのインポート設定をデフォルトにリセットします。

  • 新しい列の取得: 更新されたデータソースから新しい列を取得します - 既存のインポートテンプレートがある場合、データセットから新しく追加された列は以前のインポートのテンプレートに存在しません。

その他の機能は次の通りです:

  • 変換スクリプトを使用したデータのクリーニングと変換

  • インポートされた列を既存の属性やインジケータに割り当てる

  • 列の名前を変更する

  • 列のマージ

  • 新しい列を追加する

  • 変更のプレビュー

自動エンコード検出は、常に信頼できるとは限りません。プレビューで奇妙な文字がないか確認することをお勧めします。



上記のスクリーンショットの調整の可用性は、インポートするファイル形式によって異なる場合があります。手動インポートのオプションが記載されています。自動インポートに関する特定の情報については、データソースを参照してください。

列設定

ETL名 - ソースデータに含まれる列の名前です(例: SQL列名、CSVヘッダー行列など)。 ETL名は、インポート設定ページで列の名前を変更しても影響を受けません。 ETL名を保存する目的は単純です - BellaDatiは、既存のオブジェクト(属性/インジケータ)に入ってくるデータを簡単にマッピングできます - 例: データ内の列の順序を変更しても列名が同じ場合、BellaDatiは列を正しいオブジェクトにマップします。


特定の列のタイプを変更する場合は、列のリスト(インポート画面の左側)で選択した列の名前をクリックします。次のステップで、複数の列の意味を1つのタイプに変更することもできます - 選択した列の横にあるチェックボックスをクリックしてマークし、上のメニューから意味を選択します。

列には次の8つの意味があります(データ型):

日付/時刻 (個別) – 特定の行の時刻インデックス。様々な時間形式で表示できます(言語にも依存します - 詳細については、この章の関連部分を参照してください)。 1回のインポートで複数の日付/時刻列を選択できます。

日時 – 特定の行の日時インデックス。様々な日時形式で表示できます(言語にも依存します - 詳細については、この章の関連部分を参照してください)。1回のインポートで複数の日時列を選択できます。ミリセカンドも日時でサポートされています。

ロングテキスト – ロングテキストを定義。この列タイプは、長さが220文字を超える値を含む列に使用する必要があります。視覚化および集計では使用できません。次のユースケースに適しています:

  1. 220文字を超える長さの値を含む列のソースデータを表示します。

  2. 220文字を超える長さの値をKPIラベルとテーブルに表示します - この場合は、firstValue()およびlastValue()関数を使用する必要があります。

属性 – ドリルダウンパスのカテゴリを定義します。通常、短いテキスト(例: アフィリエイト、製品、顧客、従業員、部門など)です。すべての属性列は、データセットに1つの属性を作成します。これらの属性は、ドリルダウンパスで自由に組み合わせることができます。

Geoポイント – 緯度/経度をGeoポイント属性タイプにマッピングできます。その後、この属性をGeo Mapビュータイプで使用して、特定の場所にデータをプロットできます。

GeoJSON – Geo JSON属性タイプに形状をマッピングできます。その後、この属性をGeo Mapビュータイプで使用して、形状として表示される特定の場所にデータをプロットできます。 

翻訳 – 属性として識別される他の列の言語翻訳を定義します。

インジケータインジケータは通常、数値データであり、ユーザーの関心の主要なポイントです。

インポートしない – これらの列はまったくインポートされません(列に含まれない、無効、重要でないデータを含む場合に役立ちます)。

「選択したプレビュー」ボタンをクリックすると、マークされた列のプレビューを表示できます。このようにして、データとその意味設定をより適切に表示できます。データに含まれる列が多すぎる場合は、列リストの上にある検索ラベルを使用して適切な列を見つけ、その設定を確認できます。この検索フィールドの下には、特定の種類の列の数を示す統計が表示されます。

日付時刻

ソースデータに日付時刻の値が含まれている場合は、それらを日付時刻属性にマップできます。この単一の列には、日付と時刻の両方が含まれます。例: 2014年4月5日午前10時43分43秒 次の例を参照してください:

日時属性はミリセカンドの値もサポートします。ミリセカンドを使用するには、「With millis」オプションを有効にし、正しい日時形式を使用する必要があります(ミリセカンドの場合は「SSS」、以下を参照)。

日付時刻フォーマット

各列には特定の形式のタイプがあります。この形式は、インポート中に自動的に検出されます。ただし、時間データが非常に特殊な形式である可能性があります。この場合、様々な言語で利用可能な形式のリストを使用できます。

利用可能な形式から選択しない場合は、データ用に独自のカスタム形式を定義することもできます。この場合、以下のリストから言語を選択し、これらの意味に従ってデータ形式を説明するコードを入力する必要があります(文字数はコードの解釈に影響することに注意してください):

コード
    

意味   

コードの文字数

y

2文字(yy)は、2桁の年番号を表します(89)。それ以外の場合、コードは4桁の年番号として解釈されます(1989)

M

3文字以上(MMM)は、月のテキスト表現として解釈されます(例: 「January」または「Jan」)。その他の場合は、年月番号として解釈される文字です(1-12)


d

コード内の文字数(d)は、ソースデータの最小桁数と等しくする必要があります。常に数値形式です。

E

曜日

文字の数によって、曜日がフルネームで表示されるか(EEEE - "Monday")、略称で表示されるか(EE -"Mo")が決まります。

H時間

コード内の文字数(H)は、ソースデータの最小桁数と等しくする必要があります。常に数値形式です。

m

コード内の文字数(m)は、ソースデータの最小桁数と等しくする必要があります。常に数値形式です。

s

コード内の文字数(s)は、ソースデータの最小桁数と等しくする必要があります。常に数値形式です。

Sミリセカンドコード内の文字数(S)は、ソースデータの最小桁数と等しくする必要があります。常に数値形式です。

区切り文字は、ソースデータに含まれる区切り文字と等しくなければなりません(スペース、ドット、セミコロンなど)。ソースデータにさらに区切られた列に時間が含まれている場合(月、日、年)、最初にそれらの列をマージする必要があります(この章の前の部分で説明)。次の表は、ソースデータと適切なタイムコードの組み合わせを示しています。

ソースデータ

適切なコード

09/15/10

MM.dd.yy

26/03/1984

dd/MM/yyyy

15.September 2010

dd.MMMM yyyy

15 Sep 10

dd MMM yy

Wed 15 09 10

EE dd MM yy

Sep 15, 2010

MMM d, yyyy

15:55:35.231HH:mm:ss.SSS
28 October 2015 15:55dd MMMM yyyy HH:mm
1.01.2020 12:56:56.938dd.MM.yyyy HH:mm:ss.SSS

日付/時刻

ソースデータに日付/時刻値が含まれている場合、それらを適切な日付属性または時刻属性にマップできます。単一の列には、日付と時刻の両方を含めることができます。 例: 5 Apr 2014 10:43:43 AM(2014年4月5日午前10時43分43秒) この場合、5 Apr 2014(2014年4月5日)の日付部分は日付属性にマップされ、時間部分の10:43:43 AM(午前10時43分43秒)は時間属性にマップされます。次の例を参照してください:

日付/時刻形式の定義は、日付時刻列と同じです。

翻訳

BellaDatiでは、属性の翻訳を直接インポートできます。属性の翻訳を設定するには、言語のメタフレーズを含む列に移動し、次のことを行います:

  • 列タイプ翻訳を選択

  • 翻訳言語を選択

  • 元の列インデックスを指定

Geoポイント

経度/緯度をGEOポイント属性にマッピングするには、緯度/経度を「緯度;経度」の形式で単一の列に指定する必要があります。例: 43.56;99.32。小数点区切り文字は.(ドット)です 。変換スクリプトを使用して実行できます。 例:  経度が列1に、緯度が列2に格納されている場合、value(2) + ";" + value(1)

Geo JSON

BellaDatiを使用すると、データセットでGEO JSONを直接使用できます。 GEO JSONは、次のような形式で指定する必要があります:

  • {"geometry":{"coordinates":[[[38.792341,33.378686],[36.834062,32.312938],[35.719918,32.709192],[35.700798,32.716014],[35.836397,32.868123],[35.821101,33.277426],[38.792341,33.378686]]],"type":"Polygon"},"type":"Feature"}
  • {"type": "FeatureCollection","features": [{ "type": "Feature","geometry": {"type": "Point", "coordinates": [102.0, 0.5]},"properties": {"prop0": "value0"}}]}
  • { "type": "FeatureCollection","features": [{ "type": "Feature","geometry": {"type": "Point", "coordinates": [102.0, 0.5]},"properties": {"prop0": "value0"}},{ "type": "Feature","geometry": { "type": "LineString", "coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]},"properties": {"prop0": "value0","prop1": 0.0}},{ "type": "Feature","geometry": {"type": "Polygon","coordinates": [[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],[100.0, 1.0], [100.0, 0.0] ]]},"properties": {"prop0": "value0","prop1": {"this": "that"}}}]}
  • {"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[120.715609,-10.239581],[138.668621,-7.320225],[102.498271,1.3987],[103.07684,0.561361],[103.838396,0.104542],[104.53949,-1.782372],[104.887893,-2.340425],[105.622111,-2.428844],[106.108593,-3.061777],[105.857446,-4.305525],[105.817655,-5.852356]]]]}}


プロパティ

プロパティはバージョン2.9.1以降で使用可能です。

属性については、プロパティを変更できます:

  • インデックス付き - ユーザーは各列のインデックス作成を無効にできます。これはパフォーマンスに影響する可能性があることに注意してください。ドリルダウンと集計に使用されるすべての列でインデックスを有効にする必要があります。デフォルトでは有効になっています。

空のセルの補充

 通常、インポートされたデータには空のセルが含まれます。通常、この空のセルを独自の値("0"、"none"、"N/A"など)に置き換える必要があります。これを行う場合、これらの空のセルに入力する方法の2つの可能性があります:

  1. グローバル – すべての列で空のセルに選択した値を入力します(バッチ列設定の下にあります)

  2. ローカル – 特定の列で選択した値で空のセルを埋めます(特定の列設定ウィンドウにあります)

グローバル変更は、エンコード設定のすぐ下にある青い一番上の行で利用できます。クリックした後、値を入力するだけで、データのすべての空のセルに入力されます。

ローカル変更は、リスト内の列名をクリックで利用可能です。そこで、空のセルに独自の値を入力できます(ただし、この特定の列に対してのみ)。これらの2つの方法を簡単に組み合わせることができます - 例えば、すべての空のセルに「0」値を入力できますが、1つの特定の属性列に「N / A」値を再入力できます。

列のマージ

列のマージ機能により、インポートプロセス中に、より多くのソース列から1つのターゲット列にデータをロードできます。

典型的な使用例は次の通りです:

  • 時間は複数の列に区切られる(日、月、年、時刻を異なる列に)

  • 1つのエンティティを表す2つの列(1人の名と姓など)

列リストのチェーンアイコンをクリックし、マージする別の列を選択し、値の間に追加される適切なセパレーターを選択します(スペース、コンマ、ドット、セミコロン、パイプ)。マージされた列を切断することもできます。

列をマージしてより高度なオプションを設定する別の方法は、変換スクリプトを使用することです。

変換スクリプト

変換スクリプトにより、インポート中に高度なデータ変換が可能になります。これらのスクリプトは、Groovyプログラミング言語の構文に基づいています。



変換スクリプトを使用すると、次のことができます:

  • 定義された機能と条件に従って、BellaDatiデータウェアハウスに保存されている値を変更します。

  • 他の列の値を変換または結合して、新しい列を作成します(日付/時刻、属性、インジケータ)。異なるセルの値には0からインデックスが付けられ、インポート設定画面内の列名の近くに表示されます。

  • 日付/時刻で高度な計算を実行します(例: 2つの日付の間に行われた何らかのアクションの期間)。

基本的なスクリプトコマンド:

  • value() – 現在のセルの実際の値を返します

  • value(index) – 実際の行の目的の(インデックス付き)位置のセルの値を返します

  • name() – 列の名前を返します

  • name(index) – 目的の位置にある列の名前を返します

  • format() – 実際の列の形式の値を返します(時間とインジケータ列タイプのみ)

  • actualDate() – 実際の日付をdd.MM.yyyy形式で返します

  • actualDate('MM/dd/yyyy') – 選択した形式で実際の日付を返します(例: MM/dd/yyyy)

  • excludeRow() – 行を除外します

これらの変換は、データソースからのスケジュールされた自動インポートを含む各インポートに適用されます。

詳細については、変換スクリプトガイドを参照してください。

変換スクリプトの再利用

今後スクリプトを再び使用する予定がある場合は、左下隅のトグルを切り替えることでスクリプトを保存できます。保存したスクリプトは、「変換スクリプトの編集」ポップアップウィンドウのトップメニューにあります。

テンプレートのインポート

この機能により、以前のインポートや異なるデータセットからインポート設定を再利用できます。ページの上部にある[テンプレートのインポート]リンクをクリックして使用できます。

ポップアップでは、次のことができます:

  • データセットの選択

  • 要求された日付とインポートステータスに従って、このデータセットに割り当てられたインポートテンプレートを選択します

  • インポートテンプレートの詳細を表示(列設定)

  • インポートテンプレートの並べ替え

テンプレートを適用すると、現在のすべてのインポート設定が上書きされます。

アクセスできるすべてのデータセットで使用されている既存のインポート設定から選択できます。これらのテンプレートは、インポートが正常に終了すると自動的に作成されます。


データの上書きポリシー

データセットに既存のデータがある場合、これらのデータをどう処理するかを次のオプションから選択できます:

  • データセットに行を追加: インポートされたデータは既存のデータに追加されます(デフォルト)。

  • データセットのすべての行を削除: データセットのすべての行を削除します(1つのデータソースにのみに適用可)。

  • 日付範囲に基づいてすべての行を削除: 選択された日付範囲のデータが削除されます。
  • インポートされた行と同一データの行を削除: インポートされたデータと同じ選択された属性の組み合わせを持つすべての既存のレコードを削除します。

  • インポートされた行と同一データで行を置き換え: インポートされたデータと同じ選択された属性の組み合わせですべてのレコードを置換します。

インポートされた行と同一データで行を置き換え

属性に従ってデータを置換する場合、BellaDatiでは次のことができます:

  • すべての属性の選択

  • 特定の属性を選択 – インポート手順は、目的の属性を比較し、現在の属性がデータベースに既に保存されている値と等しい場合、行を上書きします。

インポートされた行と同一データの行を削除

属性に従ってデータを削除する場合、BellaDatiでは次のことができます:

  • すべての属性の選択

  • 特定の属性を選択 - インポート手順は、目的の属性を比較し、現在の属性がデータベースに既に保存されている値と等しい場合、行を上書きします。

このインポート方法は、選択したデータソースからインポートされたデータにのみ適用できます。

このインポート方法は、選択したデータソースからインポートされたデータにのみ適用できます。

インポート前にすべてのデータを削除

インポート前にすべてのデータを削除する場合、BellaDatiでは特定の時間間隔を選択できます。データの消去を制限するには、FromおよびToを設定します。

カレンダーアイコンを使用して、目的の時間間隔を快適に選択します。

カスタムの日付と修飾子を使用できます: now、actualyear、actualmonth、actualweek +|- d|m|w|q|y。

インポートの進行状況

大量のデータのインポートが完了するまでに時間がかかる場合があります。

データは非同期にインポートされているため、インポート中もBellaDati機能を使用できます。ユーザーはインポート中にログアウトすることもできます。
データセットの概要ページには、実際のインポートの進行状況バーと推定時間と割合が表示されます。

インポートが完了する前に、次のことができます:

  • 実行中のインポートをキャンセル: このインポートに関連するすべてのデータは、BellaDatiデータウェアハウスから消去されます。
  • メールによる通知: インポートが完了すると、電子メールが送信されます。

次に