揚聲器
|
成績單
|
| Georg Raming(Siltronic AG) |
大家好。 |
| |
今天,我想談談從分佈式和復雜源獲取數據的策略和示例。 |
| |
我叫Georg Raming,我的工作是???的過程開發。 Siltronic公司生產的單晶。 我在統計評估和流程方面有一些經驗 |
| |
以及產品數據和統計教育。 我還負責Siltronic的JMP軟件以及數百名用戶的培訓活動。 |
| |
Siltronic是高度專業化的超純矽晶圓的全球領先製造商之一。 |
| |
一些技術提示。 因此,在此演示中,我在這裡使用數據表而不是數據庫,但是這裡顯示的概念最初用於通過ODBC連接從關係數據庫中獲取數據。 |
| |
JMP Query Builder對於JMP數據表和數據庫表也以類似的方式工作。 |
| |
今天的演講的目標是什麼? 它是建立一些方法,以一種簡單有效的方式從數據庫中獲取數據到JMP或JMP表中。 |
| |
讓我們首先談談構建基塊。 |
| |
因此,其中一個可能是JMP數據表。 |
| |
因此,如果您是通過數據庫查詢生成數據表的,則它可能看起來像這樣。 因此,在這裡我從JMP Big Class中獲取了著名的示例表,並且已經通過JMP Query Builder查詢了數據。 我刪除了表隨附的所有腳本。 |
| |
你會發現 |
| |
如果您通過JMP Query Builder查詢該數據表,幾個腳本和表變量,則使用該數據表。 |
| |
因此,在該變量內,您可以看到SQL。 因此,數據表的定義是從表或數據庫中得出的。 |
| |
而且您有這些腳本,這是一個簡單的源腳本 |
| |
這樣獲得原始數據表的另一個副本。 在這裡,您可以看到原始腳本,但是JMP Query Builder再次提供了這些腳本。 |
| |
還有一個修改查詢腳本,使您可以在JMP數據表上編輯此查詢並運行它。 |
| |
並且有一個查詢,用於從數據庫進行更新。 因此,如果您更改數據表中的數據 |
| |
或數據表中有新數據,只需按此按鈕即可更新數據。 |
| |
像這樣。 這裡的腳本也再次來自示例表。 |
| |
好的,所以下一個構建塊是JMP Query Builder。 |
| |
因此,一旦數據庫中有一個或幾個表,您就想像在這裡進行查詢,我從JMP示例表中獲取了Big Class和Big Class Families |
| |
目錄並使用JMP Query Builder之類的 |
| |
在桌子上。 JMP查詢生成器。 |
| |
JMP看到了這些打開的表 |
| |
在主字段中也有一個,我可以像這樣添加一個輔助表,然後JMP會自動在兩個表之間創建一個聯接。 那麼他們是如何加入的。 您可以編輯此聯接 |
| |
像這樣。 |
| |
您將在此處看到詳細信息。 |
| |
然後您可以繼續構建查詢 |
| |
像這樣。 您這裡有兩個表。 |
| |
在這裡您還可以再次編輯聯接 |
| |
也許您想添加所有 |
| |
列, |
| |
像這樣。 |
| |
也許您想放一個過濾器, |
| |
像這樣。 |
| |
並運行查詢。 那你又 |
| |
使用以下腳本獲取此結果表: |
| |
我們這裡不需要樣品表。 |
| |
我刪除它們。 這些是JMP Query Builder編寫的腳本,腳本和變量 |
| |
就像我以前用過的一樣。 再說一遍,你可以 |
| |
編輯此查詢。 查詢腳本保存在此結果表中,就像我們之前在此處定義的一樣。 |
| |
因此,這就是JMP查詢生成器的工作方式。 |
| |
如前所述,它在數據庫表上的工作方式與在JMP示例表上的工作方式相同。 |
| |
下一棟大樓...我還在這裡放了一些腳本,您總是可以從可視化查詢生成器切換到 |
| |
到自定義SQL |
| |
詢問。所以這在這裡有效。 另一個紅色三角形菜單。 |
| |
轉換為自定義SQL,以及您在此處直觀定義的內容, |
| |
您可以在此處通過文本SQL查詢進行定義。 |
| |
您可以運行它。 |
| |
當在這裡查看此查詢或按“修改查詢”按鈕時, |
| |
您將看到文本查詢。 所以這只是一種方式 |
| |
從視覺查詢轉換為自定義SQL查詢。 |
| |
所以讓我整理一下 |
| |
一些桌子。 好的。 |
| |
下一個構建塊是從數據庫獲取數據,您需要與該數據源的ODBC連接。 |
| |
通常,ODBC數據源和驅動程序由您的IT管理員設置。 因此,在Windows下,您可以找到 |
| |
這些連接由ODBC數據源管理員負責。 |
| |
並且請記住,數據庫源的位數應適合JMP。 所以在這種情況下,我有64位JMP應用程序,因此我需要64位驅動程序 |
| |
和用戶資源一起,您可以自行設置。 |
| |
並且系統DSN由管理員設置,並且由管理員設置用於不同類型數據庫的驅動程序。 |
| |
如果進行故障排除,則可以使用此選項卡進行跟踪 |
| |
查詢到哪裡去了,可能是什麼問題。 |
| |
我這邊的提示是,檢查這些數據源的連接是否正常。 因此,如果您按配置,然後按數據源管理員,則可以在提供憑據後聽到某個源對連接進行測試。 |
| |
如果一切正常,那麼系統會告訴您 |
| |
連接成功。 |
| |
查詢不起作用並非取決於Windows。 |
| |
還有其他詳細信息,您可以在文檔的JMP手冊中找到。 例如,使用第三章的JMP,您可以在此處的 |
| |
幫助菜單 |
| |
和JMP文檔庫。 有充分的文檔證明如何使用所有這些工具。 |
| |
好的,因此在腳本編制和JSL中,用腳本編制語言提供了三種對這些SQL數據庫查詢進行腳本編制的方法。 第一個是一個新的SQL查詢,就像我們之前已經使用過的那樣。 因此,它位於表JMP表的JMP查詢生成器下的JMP菜單中。 |
| |
或對於數據庫,您可以在這裡在數據庫查詢生成器下找到它。 |
| |
然後,New SQL Query是所有功能中最強大的命令。 這樣,它會生成一個新的查詢對象,您可以將其自身另存為JMP查詢文件。 它可以直接生成一個數據表,並提供很好的數據來源,正如我們之前在源代碼修改和更新腳本中看到的那樣。 |
| |
JSL中另一個從數據庫查詢數據的命令是open database命令。 您還可以在腳本編制索引中找到所有這些命令的文檔。 像這兒, |
| |
如果我輸入 |
| |
打開 |
| |
數據庫, |
| |
您可以在此處找到所有命令的工作方式。 |
| |
連接數據庫並進行一些查詢的第三種方法是數據庫連接。 |
| |
它需要三個步驟。 第一個是創建數據庫連接。 第二種是將您的查詢(一個或多個)放入數據庫中。 最後,您需要關閉數據庫連接。 |
| |
最後,如果您編寫了一些不錯的腳本。 |
| |
您應該使您或同事都可以使用它,並且至少有兩種方法。 因此,一種方法是將其放入外接程序,以便您也可以輕鬆地將其提供給其他人。 另一個可能性是像我在這裡一樣將其放在自定義菜單中。 |
| |
你可以找到它 |
| |
在菜單中,然後像這樣 我的系統中安裝了兩個加載項。 |
| |
這是我的個人 |
| |
自定義菜單。 |
| |
所以,讓我們...我們已經完成了構建基塊。 讓我們來看例子。 |
| |
第一個示例是使用表腳本來保存表佈局和查詢。 |
| |
因此,它可能看起來像這樣。 如果您有一個數據表 |
| |
從數據庫中添加一些腳本以獲得漂亮的圖形, |
| |
您可能想每天使用它。 這裡很有可能 |
| |
可以說,複製表腳本時不包含數據。 |
| |
然後可以使用此腳本。 |
| |
我想製作一個新腳本。 對不起。 |
| |
並將其粘貼到腳本窗口中。 |
| |
只需按下“運行腳本”按鈕,該新表就會出現。 |
| |
它以???形式出現,沒有數據。 並且您可以例如在菜單中保存此腳本並獲取數據,它可能是大量數據。 您只需按“從數據庫更新”按鈕,表中就會充滿來自數據庫或其他位置的所有數據。 |
| |
所以這是一個很好的可能性 |
| |
簡單地使用腳本 |
| |
從數據庫獲取數據。 |
| |
第二個例子 |
| |
是從表內部使用查詢。 |
| |
像這樣 如果您有數據表,並且要查詢一些其他數據,則取決於當前表的內容。 |
| |
因此,我將展示它。 |
| |
我刪除一些行。 |
| |
使用這三個名稱,我想轉到另一個表以獲取一些數據。 |
| |
這是通過此腳本完成的。 |
| |
在這裡,您可以從該表中看到我的名字並進行了查詢 |
| |
查詢來自Big Class Families的另一個表中的數據。 |
| |
以及它是如何工作的? |
| |
您可以在此腳本中找到它。 |
| |
很短。 在這裡,名稱是從定義的第一個表查詢中獲取的,就像這裡一樣。 |
| |
名稱將替換為查詢。 |
| |
在這裡,查詢被放入表Big Class Families。 |
| |
好的,我也需要關閉此表。 |
| |
這是一個帶有圖形用戶界面的自定義查詢腳本。 因此,例如,如果您的數據庫中有一個大數據表,並且經常需要少量數據表, |
| |
您當然可以提取所有數據,但也許獲取經過過濾的數據會更靈活,更有效。 因此它像這樣工作。 |
| |
一個表用於過濾數據,另一個表包含大數據表的所有列。 在這裡,我們可以進行圖形化過濾。 假設是女性和年齡,所以我只用了兩列進行過濾, |
| |
像這樣,分別是12歲和13歲。 |
| |
我可能想擁有所有列或僅刪除一列。 |
| |
我查詢 |
| |
並在這些限制條件下獲得正確的結果。 您可以在此處看到源腳本或SQL中的內容, |
| |
限制在這裡 |
| |
從定義的圖形用戶界面。 |
| |
以及如何 |
| |
腳本工作正常嗎? 有點 |
| |
當然更複雜。 因此,存在過濾器查詢。 |
| |
列查詢。 |
| |
這是一個腳本,一個將 |
| |
將數據過濾條件轉換為SQL條件。 |
| |
這是GUI部分,圖形用戶界面。 |
| |
最後,在這裡,將評估圖形用戶界面結果並將其放入此自定義腳本中。 |
| |
下一個示例是兩步查詢。 因此,假設您必須先查詢一些批次ID。 |
| |
並將這些ID帶到另一個查詢中,也許帶到另一個數據表中以獲取其他數據, |
| |
你可以這樣 所以在這裡,我將Big Class數據表用作過濾器。 所以我只過濾了男性 |
| |
和 |
| |
等於或小於13歲的學生。 |
| |
並使用這些名稱在Big Class Families的所有行中進行查詢,就像您在此處看到的那樣。 |
| |
和 |
| |
這兩個表都是通過虛擬聯接連接的,就像您在這裡看到的那樣。 |
| |
所以 |
| |
該表通過名稱將另一個表引用到過濾器表。 我可以用 |
| |
該表中此處的過濾器表的各列,就好像它們是 |
| |
在此表中。 |
| |
因此,這是擁有多個表並在一個表中使用內容的一種好方法。 |
| |
最後一個例子是 |
| |
如何在後台並行運行兩個或幾個查詢。 所以我這裡沒有例子。 JMP社區中對此進行了討論。 如果您有興趣,可以看看。 |
| |
現在,我完成了示例,期刊和演示文稿的材料腳本可在線獲得。 |
| |
感謝社區的精彩討論,也感謝JMP開發人員構建和維護了這一出色的軟件。 最後,感謝您的關注。 |