まとめ:データベースの選択、結合やフィルタリングなどのデータベース内操作、「テーブル>連結」や「行>場所の選択...」などのメモリ内操作、および追加などのJSL操作を可能にする視覚的なテーブルビルダーインターフェイスを提案します。視覚的な流れに連鎖するプロパティ。 私はこのアプローチが提供すると信じています非常に直感的な方法データサイエンスのトレーニングがほとんどない人のために、データの準備とクリーンアップを自動化して、ライブデータソースをJMPに簡単にキャプチャし、洞察の生成と分析を行います。
詳細: JMP Query Builderを使用して、内部のPostgresデータベースからデータクエリを作成していることに気付きました。これは、基本的なデータベースクエリツールとして適切に機能します。 それでも、Python、KNIME、または生のSQLに戻って、2つのサブクエリを結合してテーブルを生成するなど、ベーステーブルでの結合と変換の結果であるより複雑なワークフローに対処していることに気付きます。 ただし、最終的には、データベースからJMPのデータを取得するために、単純なJMPクエリを作成する必要があります。 さらに、現在のクエリビルダーはかなり遅く、データベース操作の強力な基盤を持たない人々にとってはあまり直感的ではありません。
ここでKNIMEとAlteryxが採用したアプローチは、私にとって非常に良いと感じています。データベース操作の強力なメンタルモデルに役立つ視覚的なフローです。 各ステップで新しい仮想テーブル(実際には抽象化されたSQL操作)が生成され、それをつなぎ合わせてより大きなクエリにすることができます。

KNIMEでの個々のステップの構成も、クエリビルダーよりもはるかに高速です。述語ステップはメモリに残り、変更された操作のみが前のステップのメモリ内表現で実行する必要があるためです。 QBは代わりに多くのSQLクエリを実行します(自動プレビューをオフにすると非常に役立ちますが、プレビュー機能は失われます)。 基本的に、自動プレビューがオンになっている列を選択したり、列の名前を変更したりするたびに、データベースクエリが実行され、フローが中断されます。
クエリビルダーを改善することは、科学者やエンジニアにとってデータ操作とデータベースの使用を民主化するのに大いに役立つと思います。 これが私が提案しているものです:
- テーブルの選択を結合操作およびフィルタリング/順序付けから分離します
- これにより、単一のテーブルが選択されたかのように、既存のクエリビルダーを活用できます。 列を選択して名前を変更するJMPQBの方法は、かなり優れています。
- IOはほとんどの操作の中ではるかに遅い部分であるため、可能な限り、プレビュー操作にテーブルサンプルのメモリ内表現(すべての列と約100〜500行を含む)を使用して、SQLクエリをできるだけ頻繁に回避します。
- これには、列の選択、名前の変更、group by、集計関数などが含まれます。
- 考えられる懸念は、テーブルが非常に広いことです(バイオインフォマティクスが頭に浮かぶ)。したがって、メモリ内モードでも列制限が必要になる場合がありますが、ほとんどの用途に対応できると確信しています。
- 操作による結合、フィルタリング、並べ替え/並べ替えのための視覚的なフロー表現を構築します。
- 各操作では、可能であれば、出力のプレビューにメモリ内表現を使用します。
- ソーステーブルサンプルのメモリ内表現により、結合操作のために列名をクエリする必要もなくなります。これは、JMPでは驚くほど遅いステップです。
- 理想的には、JMPテーブル操作(分割、スタック、連結、場合によっては数式を使用した列の追加、行の選択、行の非表示と除外など)を、データベースからのクエリ後の視覚的な手順としてフローにチェーンできるようにします。
- 多くの同僚が、さまざまなデータのクリーンアップと準備の手順をメニュー操作としてまとめて、クエリ後のスクリプトに変換する必要があることに気付きました。
- スクリプトを最終的なデータテーブルにアタッチすることも視覚的なステップである可能性があります。これにより、N個のアタッチされたスクリプトに対して一連のNステップを実行するという便利なフローが実現します。
少なくともUIの観点からは、これらの部分のほとんどまたはすべてがJMPの既存のUIを活用できます。JMPテーブル連結ステップの構成パネルは、文字通り、JMPの[テーブル]>[連結]オプションと同じ形式を使用できます。
私の理想的な状態は、SQLやデータベースのトレーニングがあまりない同僚が、テーブルの選択、結合、フィルタリング、データの準備を簡単に試して、完全に自動化されたワークフローを実現し、視覚化と分析を行うために必要なテーブルを正確に作成できることです。 。 ビジュアルフローアプローチはそれを容易にする優れた方法だと思います! これは、データベースクエリ、データベース内操作、メモリ内のテーブル、行、列、およびスクリプト操作の機能を組み合わせて、完全に自動化されたデータ準備ワークフローを構築する、真のテーブルビルダーになります。
最終的な出力は、クエリビルダーのようなものです。テーブルビルダーフローを開く.jmpflowファイル(またはその他)、またはアドインまたはスクリプトウィンドウから実行できる保存されたスクリプトのいずれかです。
私が考えていることのひどく描かれた絵を添付しました。 これが開発者の興味をそそる場合、これについて話したい場合は、プライベートメッセージで私に連絡してください!

注:フォーマット用に編集