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