はじめに
データをDomoに取り込むためには様々な方法があります。一度データを取り込むと、そのデータを処理したり変換したりできるようになります。データを処理する際、次の3つのステージがあります。
-
Domoに取り込む前の処理オプション:WorkbenchとDomoコネクターを使用してDomo内にデータを取り込むのが一般的な方法です。Domoにデータをアップロードする前に、Workbenchおよびコネクター内で最小限のデータ変換を実行することができます。
-
Domoに取り込んだ後の処理オプション:データをDomoに移動した後、通常はMagic変換(ETL、MySQL、Redshift、DataFusionのいずれか)を使用して、Domo内に新しいDataSetsを作成し変換します。
-
カード作成後の処理オプション:DataSetを作成してカードを作成開始した後、AnalyzerのBeast Modeを使用して必要なディメンションや計算を追加することができます。
それぞれのツールには独自のアフォーダンスがあり、操作や目的に関する直観的な理解をユーザーにもたらします。しかし処理するデータの種類やサイズ、そして求められているデータの再読み込みまたは更新速度に応じて、潜在的な利点や欠点を持っています。次のセクションを参照し、現在または将来のデータ処理のニーズに最適なツールをご確認ください。
Domoに取り込む前の処理オプション
コネクター
コネクタを使用する場合
Domoでは、様々な人気のアプリケーション群からデータを簡単に取り込むことができるようになる独自のコネクターを何百個も開発しています。Domoのデベロッパーキットを使えば、自分でコネクターを構築することもできます。
特定のコネクターによっては、レポートの調整方法や、Domoに取り込むData Setのオプションが異なる場合があります。各コネクターの処理と変換機能については、ヘルプセンターの各コネクターのドキュメントを参照してください。
プロからのヒント
-
データをDomoに取り込む前に、できるだけコネクターを使用して前処理してください。これにより、後でDataFlowを作成する必要がなくなり、最終的に処理時間が短縮されます。
-
可能であれば、DataSetに含める必要のないデータの列やカテゴリーを削除またはフィルターして読み込み時間を最小限にしておくと、後からDataSetを簡単に利用できるようになります。
Workbench
Workbench は、オンプレミス環境のデータをDomoにアップロードするためのセキュアなクライアントサイドソリューションです。Workbenchについて詳しくは、http://knowledge.domo.com?cid=workbenchをご覧ください。
Workbenchを使用する場合
-
ローカルファイルや、社内管理しているデータベースまたはサーバー(Csv、Excel、Jira、ODBC、OLAP、Quickbooks、XML)からのデータインポートを自動化したい場合。
-
Domoに変換する前に、基本的なデータ操作(ルックアップ表、単純な計算、データフォーマットの変更、データタイプの変更、検索/置換、列ヘッダーの名前変更)をしたい場合。
-
データベースからデータを取得する際に、既存のSQLクエリを使用したい場合(ODBC接続を使用)。
-
Data Warehouseキューブからデータを取得したい場合(一度に1つのスライスのみ取得可能)。
-
デフォルトの接続リスト内に、既存のスクリプト(例:Python、R、Powershellなど)が入っていない場合。
-
データやシステムを一般的なデータベース(ODBC、OLAP)や一般的なファイルタイプ(Excel、Csv、JSON、XML)に変換できないとき、あるいはデータシステムやタイプと適合するコネクターを発見できないときに、カスタムプラグインをWorkbenchに構築したい場合。
Workbenchの使用が推奨されない場合
-
複雑なスクリプトを実行したい場合(ただし、SQLクエリに含まれている場合は除く)。
-
データやシステムを一般的なデータベース(ODBC、OLAP)や一般的なファイルタイプ(Excel、Csv、JSON、XML)に変換できないとき、あるいはデータシステムやタイプと適合するコネクターを発見できないときに、カスタムプラグインをWorkbenchに構築したくない場合。
プロからのヒント
-
データをWorkbenchに取り込む前に、できるだけデータを前処理するか、Workbenchを使用して処理してください。これにより、後でDataFlowを作成する必要がなくなり、最終的に処理時間が短縮されます。
-
可能であれば、DataSetに含める必要のないデータの列やカテゴリーを削除またはフィルターして読み込み時間を最小限にしておくと、後からDataSetを簡単に利用できるようになります。
Domoに取り込んだ後の処理オプション
ETL
ETL DataFlowは、DomoのData Centerで利用できる直観的なドラッグアンドドロップのインターフェースを使って作成できます。ETLについて詳しくは、http://knowledge.domo.com?cid=createmagicをご覧ください。
ETLを使用する場合
-
SQLベースの言語に精通しておらず、技術ユーザーやパワーユーザーというよりも、ビジネスユーザーに近い場合。
-
SQLベースの言語に不慣れな人にDataSetを追加または管理してもらいたい場合。
-
異なるDataSetを組み合わせるか、データを簡単に正規化する必要がある場合。
-
DataFlowの作成方法を、視覚的に確認したい場合。.
-
入力が合計1億行未満の場合。
ETLの使用が推奨されない場合
-
入力が合計1億行より大きい場合。
-
現在の日付またはカスタム関数、統計関数、ウィンドウ関数(例:行番号)、現在の日付などを使用する必要がある場合。
プロからのヒント
- 処理の最後ではなく処理の最初に、DataFlowに含める必要のないデータの列やカテゴリーを削除したり、フィルターしたりするのがよいでしょう。例えば、2016年のデータだけが必要だと分かっている場合、最初から2016年のデータをフィルターします。
DataFusion
DataFusion は、データソースを選択および結合することで、データの可視化を可能にします。DataFusionによるデータの結合は非常に簡単で、SQLやETLの専門知識は必要ありません。DataFusionについて詳しくは、http://knowledge.domo.com?cid=usingdatafusionをご覧ください。
DataFusionを使用する場合
-
即座に結合して頻繁にアップデートしなければならないDataSetがあり、列名の変更や列の削除が必要な場合、これが合計1億行以上の入力を結合する最も早い方法です。
-
DataFusionはデータの処理やインデックス作成を行わないため、Domo内でのレンダリング速度が向上します。
-
Analyzerに搭載されている柔軟性に富んだBeast Modeの計算機能を使用して、表示するデータとその表示方法を指定することができます。
-
結合中にデータを操作する必要はありません。
-
SQLの記述に精通していない場合。
-
DataSetが1億行を超える場合。
DataFusionの使用が推奨されない場合
-
結合が単純に実行できない場合(例:JOIN節上に関数、WHERE節が必要、ORDER BY節が必要、計算が必要など)。
-
DataFusionをDataFlowの入力として使う必要がある場合。
-
一度DataFusionを作成すると、バックエンド側で列名の変更や編集を行うのが難しくなります。
MySQL
MySQL Dataflowでは共通のSQLコマンドを使用して、Domo内でデータのアクセス、結合、クレンジング、変換を行うことができます。SQL DataFlowについて詳しくは、http://knowledge.domo.com?cid=createsqldfをご覧ください。
MySQLを使用する場合
-
SQLベースの言語に精通している場合や、現在推奨されている場合。
-
最適化の手法に詳しく、独自のインデックスを作成する方法をご存知の場合。例えば、インデックスを使用すると8時間の処理時間を30分程度に短縮できます。
-
処理を最適化したい場合。計算を適切に最適化すると、MySQLがRedshiftの処理効率を超えることがよくあります。
-
カスタム関数やストアドプロシージャを使用するか、インデックス作成を完全に制御する必要がある場合。
-
Magic ETL、Beast Mode、あるいはFusionを使用して、目的の結果が得られない場合。
MySQLの使用が推奨されない場合
-
入力DataSetが合計1億行より大きい場合。
-
大量の列や行を持つDataSetを処理する際に、グループ化されていない列や行をDataFlowに組み合わせる場合、これらのDataSetやこれらのDataSetから作成したカードをDomoで更新すると非常に時間がかかる可能性があります。上記のアセットの更新が完了するまで、数時間かかる場合もあります。
-
複数のネスト化されたクエリを作成したい場合(ただしネスト化されたクエリを独立したクエリに展開してからインデックスと参照を作成しないと、パフォーマンスが低下します)。
-
データを最適化する、またはインデックスを作成する方法が分からない場合。
-
将来DataFlowを保守、修正、理解する必要がある他の人がMySQLを使うのを好まない場合。
プロからのヒント
- MySQLに関するドキュメントは簡単にオンラインで入手できます。したがって問題の発生時には、オンライン上から必要なリソースを見つけることができます。
Amazon Redshift
Amazon Redshiftは、ホスト型Data Warehouseプロジェクトで、大型クラウドコンピューティングプラットフォームであるAmazon Web Servicesの一環となっています。Redshiftは、列型DBMS原理で保存された大規模なDataSet上の解析ワークロードを取り扱うことができます。Redshiftの使用方法について詳しくは、http://knowledge.domo.com?cid=amazonredshiftをご覧ください。
Redshiftを使用する場合
-
DataSetsの大部分が1000万行以上の場合。
-
入力に1億行以上のDataSet行がある場合。
-
ウィンドウ機能が必要な場合(ウィンドウ機能はMySQLでも利用できますが、ネイティブには組み込まれていません)。
-
顧客がRedshiftを頻繁に利用している事業者で、すでに習熟している既存の技術を活用したいと考えており、MySQLやMagicなどに翻訳せずに他のシステムから簡単にクエリをコピーおよび貼り付けできるようにしたいと希望している場合。
-
意図的に巨大なデカルト座標を作成したり、非常に大きなDataSet間の結合作業を行うときに、複数の並列処理を有効にする場合。
Redshiftの使用が推奨されない場合
-
入力DataSetの大部分が、100万行未満の場合。
-
カスタマイズされた関数、インデックス、ストアドプロシージャが必要な場合。
-
SQL内でサブクエリとは異なるサブ選択を使用する場合。パフォーマンスが大幅に低下した場合。以下を参照してください。
-
SUBSELECT (AVOID): select *, (select a from table) as content from table
-
SUBQUERY (OK TO USE): select * from (select a from table)
-
-
他の方法を使って、適切かつ適当に解決できる場合。
-
将来DataFlowを保守、修正、理解する必要がある他の人がRedshiftを使うのを好まない場合。
プロからのヒント
- Redshiftに関するドキュメントは簡単にオンラインで入手できます。したがって問題の発生時には、オンライン上から必要なリソースを見つけることができます。
カード作成後の処理オプション
Beast Mode
Analyzerでは、DataSet内の他の列を参照する計算式を定義することで、計算式を追加したり、変換列を作成したりすることができます。Beast Modeについて詳しくは、http://knowledge.domo.com?cid=beastmodecalculationをご覧ください。
Beast Modeを使用する場合
-
瞬時計算や計算列を作成するか、計算を動的に実行する必要がある場合(フィルターやAnalyzerを使用している場合は、すぐに再計算可能)、特に、SUM、MIN、MAX、AVGのいずれかの計算を実行する場合。
-
データを異なるグループに分割したい場合(例:年齢列を複数系列に分割する際に0-10、11-30、31+のようにしたいときは、below goalやabove goalなどを設定します)。
-
比較計算を作成したい場合(例:前年比や前期比など)や、データグループ間の比率を作成したい場合。
-
基本的なHTMLを使って複数のサマリーを作成したり表カードを操作したい場合。
-
クエリが完了するまでの時間を最適化したい場合を考えてみましょう。Beast ModeはDataSet自体には保存されないので、完了までの時間を短縮できます。
Beast Modeの使用が推奨されない場合
-
データを行ごとに比較したい場合(SUM、MIN、MAX、AVG以外)。
-
高度な統計関数が必要な場合(Beast Modeには複数の統計関数が存在します。必要な統計関数が利用可能かどうかは、関数のリストを参照してください)。
-
変数が必要な場合。
-
カードのダイナミック日付フィルターで認識および使用できる予定日が必要な場合(代わりにDataFlowを使用してください)。
プロからのヒント
-
計算をDataSetに適用する必要がある場合は、Beast Modeを使用するのが一般的です。これは計算にダイナミックなフィルター機能を追加することができます。
-
Fusionは、前処理済みの履歴を持つ大きなDataSetと最新バージョンを素早く結合し、処理時間を大幅に短縮するために使用できます。その理由は、前処理済みのDataSetに対して、追加処理やインデックス作成を毎回実行する必要がないためです。
ヘルプオプション - Domo ETLチーム
Domoツールが最も効率的でない可能性がある時に解決策を開発する、データスペシャリストによる特別なチームです。
Domo ETL Teamに連絡する場合(追加料金が適用される場合があります)
-
データソースが、数億行から何十億行の場合。
-
Domoのデータを受信し準備するために、「すぐに使える」ソリューションを必要としている場合。
ETLチームへの連絡が推奨されない場合
- 上のいずれかの方法が効率的に機能する場合。
ビッグデータを処理する際のヒント
-
データをDomoにアップロードするときは、ファイル部分が100 MBから200 MBの間になるように、大きなデータファイルを行単位で分割します。
-
DomoのマルチパートストリーミングAPIを使って、データをアップロードします。さらに詳しい情報については、https://developer.domo.com/docs/streams-api-reference/streamsをご覧ください。
-
データパートのアップロードに予期せず失敗した場合、マルチパートストリームのアップロードを閉じる前に、そのデータパートを同じパートIDで再アップロードすることができます。
コメント
0件のコメント
サインインしてコメントを残してください。