| スピーカー |
トランスクリプト |
| ゲオルグ・ラミング(Siltronic AG) |
みなさんこんにちは。 |
| |
今日は、分散された複雑なソースからデータを取得するための戦略と例についてお話ししたいと思います。 |
| |
私の名前はゲオルグ・ラミングです。シルトロニック社で???成長単結晶のプロセス開発を担当しています。統計的評価とプロセス開発の経験があります。 |
| |
製品データと統計教育を担当しています。また、Siltronic社のJMPソフトウェアと、数百人のユーザーを対象としたトレーニング活動も担当しています。 |
| |
Siltronic は、高度に特殊化された超高純度シリコン ウェーハを製造する世界有数の企業です。 |
| |
技術的なヒントをいくつかご紹介します。このプレゼンテーションではデータベースではなくデータテーブルを扱っていますが、ここで紹介する概念は元々、ODBC接続を介してリレーショナルデータベースからデータを取得する際に使用されるものです。 |
| |
JMP クエリ ビルダーは、JMP データ テーブルとデータベース テーブルに対して同様に動作します。 |
| |
本日のプレゼンテーションの目標は何でしょうか?それは、データベースからデータを簡単かつ効率的に JMP または JMP テーブルに取り込む方法を確立することです。 |
| |
まず最初に、構成要素についてお話ししましょう。 |
| |
したがって、1 つは JMP データ テーブルである可能性があります。 |
| |
データベースクエリからデータテーブルを生成した場合、以下のような感じになるかもしれません。ここではJMPの有名なサンプルテーブル「Big Class」を取り上げ、JMPクエリビルダーを使ってデータクエリを実行しました。テーブルに付属するスクリプトはすべて削除しました。 |
| |
そしてあなたは見つけるでしょう |
| |
このデータ テーブルに対して、JMP クエリ ビルダー、いくつかのスクリプト、およびテーブル変数を使用してクエリを実行する場合。 |
| |
この変数の中にSQLが入っています。データテーブルの定義はテーブルまたはデータベースから取得されます。 |
| |
そして、これらのスクリプト、ソーススクリプトは単純に |
| |
元のデータテーブルのコピーがこのように表示されます。元のスクリプトも含まれていますが、JMPクエリービルダーのスクリプトも含まれています。 |
| |
JMP データ テーブルでこのクエリを編集して実行できるクエリ変更スクリプトもあります。 |
| |
そして、データベースからの更新クエリがあります。つまり、データテーブルのデータを変更すると |
| |
または、データ テーブルに新しいデータがある場合は、このボタンを押すだけでデータを更新できます。 |
| |
こんな感じです。ここでもスクリプトはサンプルテーブルから取得されています。 |
| |
さて、次の構成要素は JMP クエリービルダーです。 |
| |
データベースに1つまたは複数のテーブルがある場合は、ここでのようにクエリを実行します。JMPのサンプルテーブルからBig ClassとBig Class Familiesを取得しました。 |
| |
ディレクトリを作成し、JMPクエリビルダーを使用します。 |
| |
ここのテーブルにJMPクエリービルダーがあります。 |
| |
JMPはこれらの開いているテーブルを認識します |
| |
プライマリフィールドに1つあります。このようにセカンダリテーブルを追加すると、JMPは自動的に両方のテーブル間の結合を作成します。これが結合方法です。この結合を編集できます。 |
| |
このような。 |
| |
詳細はここで確認できます。 |
| |
そしてクエリの構築を続けます |
| |
こんな感じです。両方のテーブルが利用可能です。 |
| |
ここで結合を再度編集することもできます |
| |
そして、すべてを追加したいかもしれません |
| |
列、 |
| |
このような。 |
| |
フィルターをかけるといいかもしれません |
| |
このような。 |
| |
クエリを実行します。そして再び |
| |
この結果テーブルをスクリプトから取得します |
| |
ここで必要のないサンプルテーブル。 |
| |
これらを削除します。これらはJMPクエリビルダーによって書かれたスクリプトと変数です |
| |
以前使ったように。ここでも |
| |
このクエリを編集します。クエリのスクリプトは、先ほど定義したように、この結果テーブルに保存されます。 |
| |
JMP クエリービルダーはこのように動作します。 |
| |
前述のように、これは JMP サンプル テーブルの場合と同じようにデータベース テーブルでも機能します。 |
| |
次の建物...ここにもスクリプトをいくつか置いてあり、いつでもビジュアルクエリビルダーから切り替えることができます。 |
| |
カスタムSQLに |
| |
クエリです。これでうまくいきます。もう一つ赤い三角のメニューです。 |
| |
カスタムSQLに変換し、ここで定義したものを視覚的に表示します。 |
| |
ここでテキスト SQL クエリを定義できます。 |
| |
実行できます。 |
| |
このクエリを見たり、クエリの変更ボタンを押したりすると、 |
| |
テキストクエリが表示されます。これはあくまで一例です。 |
| |
ビジュアル クエリからカスタム SQL クエリに変換します。 |
| |
では、ちょっと整理してみましょう |
| |
いくつかのテーブル。わかりました。 |
| |
次の構成要素はデータベースからデータを取得することです。そのためには、そのデータ ソースへの ODBC 接続が必要です。 |
| |
通常、ODBCデータソースとドライバはIT管理者によって設定されます。Windowsでは、 |
| |
これらの接続は ODBC データ ソース管理者によって管理されます。 |
| |
また、データベースソースのビット数はJMPに適合している必要があることに注意してください。この場合、JMPアプリケーションは64ビットなので、64ビットドライバが必要です。 |
| |
ユーザーソースは自分で設定できます。 |
| |
システム DSN は管理者によって設定され、さまざまな種類のデータベースのドライバーも管理者によって設定されます。 |
| |
トラブルシューティングの場合は、このタブを使用してトレースすることができます。 |
| |
クエリがどこに送信され、何が問題である可能性があるか。 |
| |
私からのアドバイスとしては、これらのデータソースからの接続が正常に機能しているかどうかを確認することをお勧めします。「構成」を押してデータソース管理者に問い合わせると、資格情報を入力した後に特定のソースへの接続をテストする画面が表示されます。 |
| |
そして、すべてが正常であれば、システムはあなたにそれを伝えます |
| |
接続に成功しました。 |
| |
クエリが機能しないのは Windows のせいではありません。 |
| |
その他の詳細は、JMPマニュアルのドキュメントをご覧ください。例えば、「JMPの使い方」の第3章は、こちらにあります。 |
| |
ヘルプメニュー |
| |
JMPドキュメントライブラリもご利用いただけます。これらのツールの使い方が詳しく解説されています。 |
| |
スクリプト言語のJSLでは、SQLデータベースクエリをスクリプト化する方法が3つあります。1つ目は、以前も使用した新しいSQLクエリです。JMPメニューの「テーブル」→「JMPクエリビルダー」からJMPテーブルを作成できます。 |
| |
または、データベースの場合は、データベース クエリ ビルダーの下にあります。 |
| |
そして、「新規SQLクエリ」は最も強力なコマンドです。このコマンドは新しいクエリオブジェクトを生成し、JMPクエリファイルとして保存できます。データテーブルを直接生成し、ソースの変更と更新のスクリプトで前述したように、データのソースを非常に適切に提供します。 |
| |
JSLでデータベースからデータを照会するもう一つのコマンドは、open databaseコマンドです。これらのコマンドに関するドキュメントは、スクリプトインデックスにも掲載されています。例えば、 |
| |
入力すると |
| |
開ける |
| |
データベース、 |
| |
すべてのコマンドがどのように機能するかについては、ここで確認できます。 |
| |
データベースに接続してクエリを実行する 3 番目の方法は、データベース接続です。 |
| |
これには3つのステップが必要です。まず、データベース接続を作成します。次に、1つまたは複数のクエリをデータベースに送信します。最後に、データベース接続を閉じます。 |
| |
そして最後に、素晴らしいスクリプトを書いたら。 |
| |
あなた自身、あるいは同僚がアクセスできるようにする必要があります。そのためには少なくとも2つの方法があります。1つはアドインに組み込み、他の人にも簡単に提供できるようにすることです。もう1つは、ここで紹介したように、カスタムメニューに組み込むことです。 |
| |
そして、あなたはそれを見つけることができる |
| |
メニューで、このように表示されます。私のシステムには2つのアドインがインストールされています。 |
| |
そしてこれが私の個人的な |
| |
カスタムメニュー。 |
| |
では…基礎は終わりました。例を見てみましょう。 |
| |
最初の例では、テーブル スクリプトを使用してテーブル レイアウトとクエリを保存します。 |
| |
つまり、次のようになります。データテーブルが付属している場合は |
| |
データベースからいくつかのスクリプトを入れてグラフを美しくすることもできます |
| |
毎日使いたくなるかもしれません。そしてここには素晴らしい可能性があります |
| |
つまり、データのないテーブル スクリプトをコピーします。 |
| |
そして、このスクリプトを使用できます。 |
| |
新しいスクリプトを作りたいのですが、申し訳ありません。 |
| |
それをスクリプト ウィンドウに貼り付けます。 |
| |
そして、「スクリプト実行」ボタンを押すだけで、新しいテーブルが表示されます。 |
| |
そして、データなしの???として表示されます。このスクリプトを例えばメニューに保存してデータを取得すると、膨大なデータ量になる場合があります。「データベースから更新」ボタンを押すだけで、データベースなどから取得したすべてのデータがテーブルに自動的に入力されます。 |
| |
これは良い可能性だ |
| |
スクリプトを使用するだけ |
| |
データベースからデータを取得します。 |
| |
2番目の例 |
| |
テーブル内からクエリを使用することです。 |
| |
例えば、データテーブルがあり、現在のテーブルの内容に応じて追加データをクエリしたい場合などです。 |
| |
だから見せてあげるよ。 |
| |
いくつかの行を削除します。 |
| |
そして、これら 3 つの名前を使用して、別のテーブルに移動してデータを取得したいと思います。 |
| |
そしてそれはこのスクリプトによって行われます。 |
| |
この表からわかるように、名前を取得してクエリを実行しました |
| |
Big Class Families の別のテーブルからデータをクエリします。 |
| |
それはどのように機能するのでしょうか? |
| |
このスクリプトで見つけることができます。 |
| |
かなり短いですね。ここでは、最初のテーブルクエリで定義されている名前が取得されます。 |
| |
名前がクエリに代入されます。 |
| |
ここで、クエリは Big Class Families テーブルに入力されます。 |
| |
さて、このテーブルも閉じなければなりません。 |
| |
これはグラフィカルユーザーインターフェースを備えたカスタムクエリスクリプトです。例えば、データベースに大きなデータテーブルがあり、そのデータを頻繁に少量ずつ必要とする場合など、 |
| |
もちろん、すべてのデータを取得することもできますが、適切にフィルタリングされたデータを取得する方が柔軟で効率的かもしれません。そのため、次のように動作します。 |
| |
データをフィルタリングするためのテーブルと、ビッグデータテーブルのすべての列を含むテーブルがあります。ここではグラフィカルにフィルタリングできます。女性と年齢の2つの列だけをフィルタリングに使用します。 |
| |
このように、12歳と13歳です。 |
| |
また、すべての列を取得したり、1 つの列だけを削除したりすることもできます。 |
| |
私はそれを問い合わせる |
| |
これらの制限を適用することで、適切な結果が得られます。そして、ここでご覧のとおり、ソーススクリプトやSQLでも、 |
| |
制限はここにあります |
| |
定義されたグラフィカル ユーザー インターフェイスから。 |
| |
そして、どのように |
| |
スクリプト作業はうまくいきましたか?少し |
| |
もちろん、より複雑です。そこでフィルタークエリがあります。 |
| |
列のクエリ。 |
| |
これは、 |
| |
データ フィルター条件を SQL 条件に変換します。 |
| |
これは GUI 部分、グラフィカル ユーザー インターフェイスです。 |
| |
そして最後に、グラフィカル ユーザー インターフェイスの結果が評価され、このカスタム スクリプトに組み込まれます。 |
| |
次の例は2段階のクエリです。まずバッチIDをクエリする必要があると仮定します。 |
| |
これらのIDを別のクエリ、例えば別のデータテーブルに渡して追加データを取得するには、 |
| |
このようにできます。ここではBig Classデータテーブルをフィルターとして使い、男性のみをフィルターしました。 |
| |
そして |
| |
13歳以下の生徒。 |
| |
そして、これらの名前を使用して、Big Class ファミリのすべての行をクエリしました。ここに表示されているのがわかります。 |
| |
そして |
| |
ここでわかるように、両方のテーブルは仮想結合を介して接続されています。 |
| |
それで |
| |
このテーブルは、名前を介して他のテーブル、つまりフィルタテーブルを参照します。そして、 |
| |
この表のフィルタテーブルの列は、 |
| |
この表では。 |
| |
したがって、これは複数のテーブルを用意し、 1 つのテーブルのコンテンツを使用するのに適した方法です。 |
| |
そして最後の例は |
| |
2つ以上のクエリをバックグラウンドで並列実行する方法。そのため、ここでは例を挙げません。JMPコミュニティで議論されています。ご興味があれば、こちらをご覧ください。 |
| |
これで私の例は完成し、ジャーナルとプレゼンテーション資料のスクリプトがオンラインで利用できるようになりました。 |
| |
素晴らしい議論をしてくださったコミュニティの皆様、そしてこの素晴らしいソフトウェアを開発・維持してくださったJMP開発者の皆様に感謝申し上げます。そして最後に、ご清聴ありがとうございました。 |