| スピーカー |
トランスクリプト |
| ピーター・ハーシュ |
本日はご参加いただきありがとうございます。Hadleyと私は、データアクセスと、JMPアプリケーションビルダーを使ってデータアクセスを効率化し、より簡単にする方法についてお話します。 |
| |
ここでは、JMP 内の分析ワークフローの概要を示します。分析の最初のステップは、データにアクセスすることです。 |
| |
そして、これは多くの場合、時間がかかり、面倒なプロセスであり、多くの場合、 |
| |
データから何らかの学習を行う前に、必ず実行しなければならない重要なプロセスがあります。データにアクセスできなければなりません。そこでHadleyと私は、さまざまなソースからデータにアクセスする方法についていくつかのヒントを示し、その負担を軽減したいと思います。 |
| |
今日は簡単なボタンの作り方を紹介します。 |
| |
基本的には、JMP 内のアプリ ビルダーを使用して、OBDC 接続または Web API を介して外部のデータにアクセスします。 |
| |
この方法は、ローカルファイルやJMPがアクセスできるあらゆる種類のデータソースにも適用できます。また、ソースを組み合わせる方法も紹介します。 |
| |
データプルで複数の異なるソースにフィルターを適用します。最後に、手動でデータを入力する方法のインターフェースを示して締めくくります。 |
| |
それをもう少し簡単にするプロセスです。そして最終的には、私たちが作ったものを組織全体に配布し、 |
| |
共有可能な配布可能なアドインです。まずはHadleyがODBCドライバー経由で接続する方法を説明します。 |
| ハドリー・マイヤーズ |
うん。 |
| |
本当にありがとう、ピート。 |
| |
どこからでもご覧いただいている皆さん、こんにちは。まずは、アプリケーションビルダーを使って作成したこのアプリをご紹介します。このアプリはデータベースに接続します。 |
| |
おそらく、あなたのシステムには、データが保存されている場所やサーバーが複数あるでしょう。適切な場所やサーバーを選択してください。そして、これはタグの検索とフィルタリングを可能にします。ここに表示されているのは、 |
| |
SQLクエリです。データベースにアクセスしてタグをいくつか抽出し、適切なものを選択できます。 |
| |
見たい期間を選択できます。今回の場合、データベースはかなり過去に遡ります。データを実行して… |
| |
必要なデータをすぐに取り込めるんです。人々がこれらのツールを使う様子は、隅に置いておくのが一般的です |
| |
デスクトップにこうやって置いておけば、データが必要な時はいつでも「ああ、102も買っておけばよかった」って思える。問題ない。こうやって取り出して使えるんだ。 |
| |
今日はこのようなものの構築方法を説明します。使用する例はこれよりも少し単純です。 |
| |
ここで確認できます。期間を選択して、 |
| |
検索したいタグの一つ、今回の場合は分析手法です。カテゴリ列の1つにフィルターを適用し、データを取得します。ご覧いただいたより複雑なものは、これに機能を追加しただけのものです。 |
| |
まず、JMP のクエリビルダーを使用してみます。 |
| |
データベースに接続したら(既に接続済みです)、まずはテーブルを選択します。今回は本番環境のデータなので、この操作を行います。結果を結合します。 |
| |
サンプルデータはここにあります。それではクエリを作成してみましょう。まずロットデータを取得します。すべての生産データを取得します。 |
| |
サンプルの作成日と分析結果を入力します。これらを上部に配置して、見やすくします。 |
| |
少し良くなりました。これが最初の列になります。 |
| |
結果も同様です。フィルターを使ってこのクエリを設定すると、例えば、そこにフィルターを配置して分析結果をフィルタリングすることができます。 |
| |
ここでサンプルの日付をフィルターし、範囲に変更して予測すると、1つの日付から |
| |
別の日にちを改めて考えてみましょう。通常、このような場合には |
| |
実行時にすべてのプロンプトを表示するので、クエリを実行すると、 |
| |
ユーザーに選択してもらうこともできます |
| |
適切な日付を入力します。このデータベースは少し古いデータが含まれていると思うので、ここではかなり広い範囲を選択します。「OK」をクリックします。これで分析に必要なデータが揃いました。 |
| |
これらの日付ですが、私がやろうとしていること |
| |
これらのプロンプトを非表示にして、明確なプロンプトを表示します。クエリにどのように適合するかを確認するために、いくつか手動で選択します。 |
| |
コードに入力します。 |
| |
うん。 |
| |
では、この実行スクリプトをコピーして、フィルターを含むクエリを実行します。それでは、アプリケーションビルダーを開いてみましょう。 |
| |
空のアプリケーションを選択し、ボタンを作成します。 |
| |
ボタンを右クリックすると、ボタンが押されたときに実行するスクリプトを選択できます。今回は、クエリから実行スクリプト全体を実行します。 |
| |
これを実行すると、ボタンを押すと、クエリで設定した通りにデータが取得されます。私がやりたいこと、そしておそらく皆さんもやりたいことは、ユーザーがクエリフィルターを選択できるようにすることです。 |
| |
変数、つまりどの期間を選択し、どの分析を行うか、そのためには |
| |
驚くほど率直です。 |
| |
クエリの開始時刻と終了時刻用の 2 つの数値編集ボックスを取得します。 |
| |
私がいつもやっているのは、これらをパネルボックスの中に入れておくことです。こうすることで、ユーザーが何をしているのかが少しわかりやすくなります。つまり、指示を記入できるのです。例えば、「開始日を入力してください」といったように。 |
| |
終了日を入力します。 |
| |
そういうことです。 |
| |
そして、これらの変数に理解できる名前を付けます。 |
| |
これを…番号編集ボックスをクリックすると、この子に名前を付けることができます |
| |
始める |
| |
数値編集ボックス。 |
| |
これを終わりとしましょう |
| |
数値編集ボックス、そしてフォーマットも指定できます |
| |
私たちは |
| |
日付と時刻のカレンダー形式をここに入力します。 |
| |
こんな感じです。 |
| |
そしてもちろん、私たちがすべきことは、これらの情報から情報を得ることです |
| |
データ入力 |
| |
クエリに変数を追加します。ボタンが押されたら、startという変数を作成します |
| |
そしてそれをどんな値に等しい値にするか |
| |
番号編集ボックスに入力します。 |
| |
その値を取得します。 |
| |
終了番号編集ボックスから値を取得します。 |
| |
そしてこれらを |
| |
ここでクエリに挿入します。 |
| |
これを実行すれば、 |
| |
開始日を選択できます |
| |
終了日を選択します。 |
| |
これを実行してデータを取得できます。では、この分析をどのようにフィルタリングするかをもう1つ簡単にお見せします。そのためには、これを使います… |
| |
使えるボタンごとに様々なオプションがあります。ここにチェックボックスを追加して、選択させたい値を入力します。 |
| |
さて、これを分析に変更してみましょう。 |
| |
はい、チェックボックスをオンにします。ここで別の変数分析を作成します。 |
| |
情報を取得するためにどのコマンドを使用すればよいか思い出せない場合は、これをクリックするだけで選択を解除できます。 |
| |
右クリックすると、ヘルプ メニューやスクリプト インデックスに直接移動できるので、これらを取得するために必要なのは選択コマンドであることがわかります。 |
| |
ここに入力します |
| |
選ばれる。 |
| |
そして今、この分析を |
| |
そして私たちの |
| |
クエリパラメータはそこにあります。これを実行すると、 |
| |
もう一度、 |
| |
開始時間を選択できます |
| |
終了時間を選択します。 |
| |
そして、実行するパラメータを 1 つ選択するか、もう 1 つ選択するか、または両方選択することができます。 |
| |
それで次のステップは... |
| |
もちろん、これに好きなだけ追加することはできますが、現時点で私がやりたいのは、これを組織内に配布することです。ここでのポイントは、これにアクセスできる人は誰でも |
| |
データベースの場所を共有した場合、その場所のユーザーはこのアドインにアクセスしたり利用したりできるようになります。そこで、ここをクリックしてスクリプトをアドインに保存します。 |
| |
これをデータベースと呼ぶことにする |
| |
アクセス |
| |
そして |
| |
dbaccess1、 |
| |
一意の名前を付けるだけです。 |
| |
Accessデータです。アドインを動作させるために必要なスクリプトはすべてここにあります。これですべて完了です。保存しておきます。 |
| |
デスクトップ。 |
| |
ご覧のとおり、ここにインストールされています。 |
| |
したがって、私がする必要があるのは、他の画面に保存されていると思われるこのアドインを取得することだけです。 |
| |
これがそれです。組織内の誰にでもメールで送信できます。このメールは事前に書いておきました。 |
| |
既にお客様の便宜のために共有されています。その旨をメールでお送りください。相手がこの場所にアクセスできる場合は、アドインをインストールしてすぐにご利用いただけます。この時点で共有を停止し、送信いたします。 |
| |
Pete に戻り、Web からデータにアクセスする方法を説明します。 |
| ピーター・ハーシュ |
ありがとう、ハドリー。素晴らしいデモンストレーションでしたね。それで、このパートではハドリーが示してくれた内容を基に進めていきます。 |
| |
最終的に、このようなアドインが完成します。Hadleyと同じ手順で進めます。ODBCの部分は省略して、 |
| |
APIの部分ですが、ここでの考え方は、2つの異なるデータソースがあるということです。両方のソースからデータを取得し、結合して、このような最終的なデータテーブルを作成します。まずは、Hadleyが既に完成しているものから始めます。 |
| |
Hadleyのものよりもさらに詳細度の低い単純なODBCプルでは、 |
| |
2つの異なる株式タイプのデータがあり、その株式タイプを選択するためのフィルターが1つあります。 |
| |
API接続です。Hadleyが行ったのと同じような手順を踏んでみます。彼の説明はとても分かりやすかったので、ここで少し手短に、テキスト編集ボックスのあるパネルボックスを追加します。Hadleyが示したように、 |
| |
これらを使用して参照してください |
| |
箱には名前が付いているので、Hadley のように名前を変更することができます。 |
| |
この場合、これは単にTextEdit1と呼ばれています。ここでAPIキーエンティティを入力するように指示します。そのAPIキーは |
| |
各人が自分のAPIキーを使ってデータにアクセスできるようにすることで、APIキーを配布する必要がなくなります。そして、Hadleyが示したように、ここにボタンを作成します。このボタンを「ボタン」と呼びます。 |
| |
API データ プル。 |
| |
先ほどと同じように、ここを右クリックして「スクリプトを追加」します。このデータにアクセスするのは |
| |
Alpha Vantageというウェブサイトは、APIデータプルのデモやテストに最適です。非常に分かりやすいAPIドキュメントも用意されています。もし社内でこれをやろうとするなら、少し手順が異なります。 |
| |
使用するコマンドは異なりますが、基本的な考え方は同じで、いくつかのものを渡す必要があるということです... |
| |
JMPからそのAPIに取り込むためのスクリプトをあらかじめ書いておきました。基本的には、キーを渡し、URLと、どのようなリクエストを行うかを伝え、 |
| |
下の方に、JMPに適した形式でデータを取得し、JSONを解析するスクリプトがあります。ここで、既に記述しておいたこれを選択します。これをコピーして、先ほどと同じように、ここに入力すれば、 |
| |
そこにデータが取り込まれます。ここでいくつかやるべきことがあります。このキーは…実はAPIキーを参照したいんです。 |
| |
では、そのキーは |
| |
textedit1 そして、ハドリーが示したように、 |
| |
ヘルプインデックスを見て、そのテキストを取得するために何が必要か考えてください。しかし、この場合、重要なのは...textedit1に行って、 |
| |
テキストです。もう一つは、このボックス(Combo1)を参照してフィルタリングしたいので、これを追加します。 |
| |
ここにもストックがあります |
| |
変数名 Combo1 に等しく、これが再び、Hadley が示したように選択されます。 |
| |
では、クエリでキーと株価を取得し、ウェブサイトにアクセスしてpingを実行します。それでは、これを実行して結果を見てみましょう。ここではデモ用のキーを使用します。株価は変更するかもしれません。 |
| |
それは…ああ、いいことだね |
| |
ここで重要なのは、コードを変更するのを忘れたので、ストックはcombo1と言っていますが、ここでは |
| |
これは、シンボルがMicrosoftであることを示しています。つまり、この情報を入力しなければ、正しく取得できません。もう一度ここで確認してみましょう。ハードコードではなくフィルターを参照していることを確認し、正しいデータを取得しています。 |
| |
さて、次のステップでは、これら2つのソースからデータを取得して統合します。JMP 16には便利な機能があります。 |
| |
皆さんはここでこの新しい改良されたログについて聞いたことがあると思いますが、それについては先に説明しておきます。 |
| |
このログは、あらゆる種類のデータ操作を記録します。結合の例をお見せしましょう。この2つのデータを結合します。 |
| |
データテーブルをどのように結合するか、どのような種類のデータにするかを選択できます |
| |
結合したい列、おそらく名前 |
| |
あなたの |
| |
データの保存方法はお好みで。これで問題なければ「OK」をクリックしてください。ログを見ると、結合に必要な情報がすべて記録されていることがわかります。「スクリプトをクリップボードに保存」をクリックして、 |
| |
戻ってアプリに新しいボタンを作成します |
| |
ここにボタンボックスを使います。もちろん、好きなタイプを選んでください。また、名前を付けましょう。「結合」としましょう。 |
| |
ここを右クリックします。 |
| |
そしてそのスクリプトを印刷します。 |
| |
そしてコピーして貼り付けるだけです。 |
| |
すると、今度は結合が行われます。つまり、個々のデータを取得して結合することも可能ですが、最終目標はこれをすべて1つのステップで実行することです。 |
| |
必要なのは、これらのスクリプトをすべて1か所に集めることだけです。これは私が事前にやっていたことです。 |
| |
そして…新しいボタンを作成します。このスクリプトに追加した2つの要素を紹介します。ここではテーマに沿って「簡単ボタン」と呼ぶことにします。 |
| |
簡単ボタン。 |
| |
そして私はただ |
| |
このスクリプトをここにコピーします。これをすべて選択してコピーし、 |
| |
ここでも同じ手順を実行します。 |
| |
それを貼り付けます。 |
| |
さて、このスクリプトに既存のものをコピーして貼り付けるだけでなく、waitコマンドを追加しました。これは少し時間を与えてくれます。 |
| |
結合を開始する前にデータのプルが行われるようにし、その後、2つの追加データテーブルを閉じます。つまり、複数のテーブルを構築するだけではないのです。それでは |
| |
これを見てください。APIキーを入力して、銘柄を選択します。「簡単」ボタンを押して、2か所からデータを取得し、2秒待ってから結合します。 |
| |
これがここでの最終目標です。次は Hadley に話を戻して、データ入力をもう少しスムーズに行うための良い例を示してもらいます。 |
| ハドリー・マイヤーズ |
うん。 |
| |
ピートさん、どうもありがとうございました。SQLを使って外部データベースからデータを取得する方法を説明しました。 |
| |
データベースとPeteはAPI、つまりWeb APIからデータを取得し、それを既存のデータと組み合わせる方法を教えてくれました。別のソースにあるデータが必要な場合もありますし、Pythonを使ってアクセスする必要がある場合もありますが、それは問題ありません。 |
| |
あるいは別のファイルに保存されている場合もありますが、手動でデータを入力する必要がある場合もあります。これはデータセットの例です。 |
| |
シリアルの名前とメーカーの情報はすべて箱のラベルから手作業で入力されていますが、残念ながら、ラベルはデータを簡単に自動で取り込める形式ではありません。そのため、誰かがこの作業を行う必要があります。 |
| |
手作業です。私も以前、そういう仕事をしていたので、そういうことをしなければならない人の気持ちはよく分かります。 |
| |
さて、このようにテーブルから入力することもできますが、ここではこのアプリケーションを作成して、少し簡単にしました。 |
| |
ご覧のとおり、1つの画面から入力するだけでテーブルに追加されます。最後の2つは意図的に省略しています。 |
| |
列の編集方法は全く同じです。ボタンをクリックすると、まず |
| |
表に行を追加します。表の行数を計算し、各列と行番号ごとに |
| |
各入力からデータを取得し、各セルに保存するだけです。では、最後の2つについても同じことをしてみましょう。 |
| |
ご覧の通り、かなり均等で、間隔もきちんと空いていることにお気づきかもしれません。これは、ここにある縦と横のスプリッターを使って実現しています。そこで、一番下に横のスプリッターを追加してみましょう。 |
| |
これにパネルボックスを追加します |
| |
下部に数値編集ボックスがあります。 |
| |
さらにもう一つパネルボックスを追加します |
| |
そしてもう一つの数値編集ボックスがあります。これを「 |
| |
最後の2つの列は1食あたりの重量と |
| |
シリアルのラベルに記載されているサービスあたりのカップ数。 |
| |
今のところ、これらの名前を変更することもできますが、今は変更しません。あとは先に進むだけです。 |
| |
データ テーブルの列には、1 食分あたりの重量が表示されます。 |
| |
そして行番号です。 |
| |
これを、先ほど作成した数値編集ボックスと同じにします。 |
| |
ここでも同じです |
| |
私たちの |
| |
1食あたりカップ |
| ハデリー・マイヤーズ |
編集2の下。 |
| ハドリー・マイヤーズ |
そうですね、これを実行すると、すべてのデータを入力して、 |
| |
これらに |
| |
セルを追加したり、一番下に行を追加したりすることもできますが、最後にもう1つお見せします。誰かのためにこれを作成する場合、きっと喜んでいただけると思います。それは、 |
| |
こちらの画像に少し色を付けて、アプリケーションに追加します。それでは、会社のロゴを追加したり、ここにあるようにストックフォトを追加したりしてみましょう。 |
| |
完璧である必要はありません。このように追加するだけで、実行時に誰かの一日が以前より少しだけ良くなることがわかります。さて、これをアドインとして保存したり、 |
| |
スクリプトの場合は、これをすぐにデータ テーブルに保存します。 |
| |
追加と呼ぶ |
| |
データの取得や行の追加など、これでアドインができました。このアドインを実行できます |
| |
シリアル。タブキーを押すと次のシリアルに飛ぶのがいいですね。 |
| |
架空のデータをいくつか追加します |
| |
などなど。その行を追加すると、こうなります。 |
| |
皆さんが興味を持っていただけたら嬉しいです。皆さんの中にも、これらのツールを使ったり、作ったりする機会があれば嬉しいです。それでは、ピートにバトンタッチします。 |
| ピーター・ハーシュ |
素晴らしい。ありがとう、ハドリー。 |
| |
最後にもう2、3個だけ |
| |
スライドをご覧ください。ここで見てきたことをまとめると、データへのアクセスに困難が生じることが多く、その結果、問題が必要以上に長引く可能性があるということです。このスライドが皆様の役に立ち、データアクセスやデータ入力の効率化に役立てていただければ幸いです。 |
| |
そして |
| |
正しい形式でデータを取得し、 |
| |
簡単にアクセスできることはソリューションの約80%を占めるため、通常はそこに80%の時間を費やします。そのため、これを効率化できれば、大幅な時間節約につながります。 |
| |
そして、データ アクセスの問題ではなく、データの問題に、優秀なアナリスト、科学者、エンジニアが取り組むようにします。 |
| |
また、JMP のアプリケーション ビルダー内では、ソースの選択、フィルタリング、複数のソースの結合、さらにはデータの手動追加など、簡単なボタンの作成が非常に簡単であることも説明しました。 |
| |
そして、Hadley が示したように、アドインを使用してそれを組織全体に配布することも、スクリプトまたはアプリ自体を使用して配布することもできます。 |
| |
お時間をいただきありがとうございました。この情報がお役に立てば幸いです。下のチャットでご質問いただければ、喜んでお答えいたします。ありがとうございます。 |