| 揚聲器 |
抄本 |
| 彼得·赫什 |
好的,感謝您今天加入我們。 Hadley 和我將討論資料訪問,以及如何使用 JMP 應用程式生成器簡化資料訪問,使其更加便捷。 |
| |
這裡是 JMP 內部分析工作流程的概述,任何分析過程的第一步都是存取您的資料。 |
| |
這通常是一個耗時又繁瑣的過程,而且經常被忽視 |
| |
在利用數據進行任何學習之前,有一個關鍵過程需要完成。你需要能夠存取數據。因此,Hadley 和我將展示一些技巧,教你如何存取來自不同來源的數據,希望能減輕存取數據的痛苦。 |
| |
今天我們要展示的是創建一個簡單的按鈕, |
| |
基本上使用 JMP 內部的應用程式建構器透過 OBDC 連接或 webAPI 從外部存取資料。 |
| |
您也可以將其套用至本機檔案或任何 JMP 可以存取的資料來源。然後,我們還將展示如何合併資料來源 |
| |
並在資料擷取過程中將過濾器應用於多個不同的資料來源。最後,我們將展示一個如何手動輸入資料的介面, |
| |
但要讓這個過程變得簡單一點。最後,我們如何在整個組織內分配我們生產的任何產品,並使其成為 |
| |
可共享的可發行插件。首先,Hadley 將示範如何透過 ODBC 驅動程式進行連線。 |
| 哈德利·邁爾斯 |
是的。 |
| |
非常感謝,皮特。 |
| |
大家好,無論你們在哪裡觀看。首先,我要向你們展示一下這個用應用程式建構器製作的應用程序,它的功能是連接到資料庫。 |
| |
您的資料可能儲存在不同的位置或不同的伺服器上,因此您可以選擇合適的伺服器。此功能可讓您搜尋和篩選標籤。現在您看到的是一個 |
| |
SQL 查詢。我們進入資料庫,提取了一些標籤,我可以選擇合適的標籤。 |
| |
我可以選擇我感興趣的時間段,在本例中,資料庫可以追溯到很久以前。運行該數據並選擇… |
| |
你知道,立即提取我需要的數據。我們看到人們使用這些東西的方式是,他們把這些東西放在角落裡 |
| |
像這樣,每當他們需要數據時,他們就會說:「哦,我應該把102也弄下來。」沒問題。我可以直接去把那些數據拉出來。 |
| |
這就是我們今天要向你們展示如何建構的東西,我們要使用的範例比這稍微簡單一些。 |
| |
你可以在這裡看到。只要選擇時段,選擇任意 |
| |
你想搜尋的標籤之一,在本例中指的是一種分析方法。它會根據分類列進行篩選,然後提取資料。所以你看到的更複雜的版本只是在此基礎上添加了功能的擴充。 |
| |
因此,我們將首先使用 JMP 中的查詢產生器。 |
| |
一旦我們連接到資料庫(我已經在這裡完成了),我將進入並選擇我想要的起始表。在本例中,它是我的生產數據,我執行了以下操作。我將加入我的結果 |
| |
以及我的範例數據。讓我們開始建立這個查詢。我將首先導入我的批次。我將導入我所有的生產數據。 |
| |
我將把創建樣本的日期和分析結果放進去,也許我會把它們放在頂部附近,這樣你就能看到它們了 |
| |
稍微好一點。這些就是第一列, |
| |
以及我的結果。如果我使用過濾器來設定這個查詢,我們可以做的就是,例如,輸入「過濾」來過濾我們的分析。 |
| |
並根據我們的樣本日期進行過濾,也許我們會將其更改為一個範圍,所以我們說預測...抓取一個日期和 |
| |
另一個約會。通常情況下,在這種情況下你會 |
| |
運行時提示所有,這樣當你執行查詢時, |
| |
你可以讓你的用戶選擇 |
| |
合適的日期,而且我認為這個資料庫可以追溯到很久以前,所以我們就選擇一個非常廣泛的範圍。點選“確定”。現在我已經獲得了用於分析的數據,並且… |
| |
這些日期,但我要做的事情 |
| |
我要取消這些提示,清除提示。我要手動選擇一些,這樣我才能看到它們是如何與查詢相符的… |
| |
進入代碼。 |
| |
是的。 |
| |
所以我可以繼續複製這個運行腳本,對吧,它會執行這個查詢,包括過濾器。現在我要做的是打開應用程式建構器。 |
| |
我將選擇一個空白應用程式並建立一個按鈕。 |
| |
因此,當我右鍵單擊按鈕時,我可以選擇按下按鈕時要執行的腳本。在本例中,我們將直接執行查詢中的整個運行腳本。 |
| |
現在,如果我執行這個程序,按下按鈕,就能以我設定查詢的方式取得資料。但我希望,或許你也希望,能夠允許用戶選擇查詢過濾器。 |
| |
變量,所以選擇哪個時間段和進行哪種分析,為此 |
| |
驚人的簡單。 |
| |
我要做的是抓取兩個數位編輯框來輸入查詢的開始時間和結束時間。 |
| |
我一直喜歡把這些放在面板框裡。這樣使用者就能更容易看到他們正在做什麼…你知道,它允許我輸入指令。所以我可以在這裡寫,例如輸入開始日期 |
| |
並輸入結束日期。 |
| |
就像那樣。 |
| |
我們將為這些變數賦予我們能夠理解的名稱。 |
| |
所以我們把這個叫做...如果我點擊數字編輯框,我可以給這個傢伙取名字 |
| |
開始 |
| |
數字編輯框。 |
| |
我們將此稱為結束 |
| |
數位編輯框,我們也可以處理格式 |
| |
這樣我們就可以 |
| |
日期和時間日曆格式在這裡。 |
| |
就像這樣。 |
| |
當然,我們需要做的就是從這些 |
| |
資料輸入 |
| |
變數加入到查詢中。當按鈕被按下時,我們會建立一個名為 start 的變數 |
| |
我們將使它等於任意值 |
| |
在我們的數位編輯框中輸入。 |
| |
獲取該值。 |
| |
我們將從最終數字編輯框中獲取值。 |
| |
我們將採取這些 |
| |
並將它們插入到我們的查詢中。 |
| |
所以如果我運行這個 |
| |
我可以選擇開始日期 |
| |
並選擇我的結束日期。 |
| |
我可以運行它並獲取我的數據。現在我再快速示範一下,如何根據這個分析結果進行篩選。為此,我將使用這個… |
| |
我為不同的按鈕提供了不同的選項。我想我要做的就是在這裡添加一個複選框,然後輸入我希望它們選擇的值。 |
| |
現在,也許我們應該將其改為分析。 |
| |
是的,複選框。所以在這裡我只需創建另一個變數分析。 |
| |
如果我不記得需要使用什麼命令來獲取資訊...要從中獲得選擇,我只需單擊它即可。 |
| |
如果我單擊滑鼠右鍵,一個很好的技巧就是我可以直接進入幫助選單,直接進入腳本索引,現在我可以看到我需要的是獲取選定命令才能獲取這些。 |
| |
我會在這裡輸入 |
| |
被選中。 |
| |
現在我們可以進行以下分析 |
| |
並取代我們的 |
| |
查詢參數就在那裡。所以如果我運行這個。 |
| |
再次, |
| |
我可以選擇開始時間 |
| |
並選擇我的結束時間。 |
| |
我可以選擇執行其中一個參數,或同時執行兩個參數。 |
| |
那麼下一步... |
| |
當然,我可以隨意添加,但我現在想做的是在我的組織內分發它,這裡的訣竅是,任何有權訪問它的人 |
| |
如果我與他們共享資料庫位置,他們就能存取或使用此外掛程式。所以我要做的就是點擊此處,將腳本儲存到插件中。 |
| |
我們稱之為資料庫 |
| |
使用權 |
| |
和 |
| |
資料庫存取1, |
| |
只是給它一個獨特的名字。 |
| |
存取數據。插件運行所需的全部腳本都在這裡,所以它已經…已經全部完成了。我會把它保存到我的 |
| |
桌面。 |
| |
正如您現在所看到的,它就安裝在這裡。 |
| |
所以我需要做的就是使用這個插件,我認為它已保存在我的另一個螢幕上。 |
| |
就在這裡,我可以把它寄給我公司裡的任何人。這封郵件我提前寫好了。 |
| |
為了方便您使用,已經發送了。透過電子郵件發送此訊息,如果他們有權訪問此位置,他們就可以安裝插件並立即使用。此時我想停止分享並發送… |
| |
回到 Pete,他將向我們展示如何從網路存取資料。 |
| 彼得·赫什 |
好的,謝謝哈德利。是的,演示得非常棒。所以在這一部分,我們將以哈德利之前示範的內容為基礎。 |
| |
我們最終會得到一個像這樣的插件。所以,按照 Hadley 的步驟操作。我將跳過 ODBC 部分,並展示 |
| |
API 部分,但這裡的想法是,我有兩個不同的資料來源。我要從這兩個資料來源提取數據,將它們連接起來,然後建立一個最終的數據表,如下所示。所以我們將從 Hadley 展示的已經完成的部分開始,也就是 |
| |
一個簡單的 ODBC 拉取,其細節甚至比 Hadley 的還要少,我們只需要 |
| |
兩種不同股票類型的數據,我們有一個過濾器來選擇該股票類型,我們要做的是建立一個 |
| |
API 連線。所以我將進行與 Hadley 類似的過程。他描述得非常清楚,我在這裡簡單介紹一下,在這裡添加一個帶有文字編輯框的面板框,就像 Hadley 演示的那樣,我們可以 |
| |
使用和參考這些 |
| |
盒子,因為它們有名字。我可以像哈德利一樣,仔細檢查並重命名它們。 |
| |
在本例中,它被稱為 TextEdit1,我要告訴人們要做的是在這裡輸入他們的 API 金鑰實體,我們將使用該 API 金鑰 |
| |
每個人都可以使用自己的 API 金鑰存取數據,這樣就無需同時分發 API 金鑰了。然後,就像 Hadley 演示的那樣,我將在這裡創建一個按鈕,我們將它命名為 |
| |
API 資料拉取。 |
| |
好的,同樣的事情,我們在這裡右鍵點擊,添加一個按下腳本。所以我們從哪裡存取這些數據 |
| |
這個網站叫 Alpha Vantage,它是一個很好的示範和試用 API 資料提取的方式。它有非常完善的 API 文件。如果你打算在自己的公司內部做這件事,情況會略有不同。 |
| |
您將要使用的命令,但總體思路是相同的,即您必須從...傳遞一些內容。 |
| |
從 JMP 到那個 API 拉進來。在這裡,我已經預先寫好了這個腳本,所以基本上,我必須傳遞一個鍵,我必須告訴它 URL,我要做什麼類型的請求,然後我有一些 |
| |
這裡有更多腳本,用於將資料以正確的格式匯出到 JMP,從而解析 JSON。所以我要選擇這個,我已經在這裡寫好了。複製它,然後,就像我們之前看到的,如果我把它放在這裡,現在我就有了 |
| |
資料拉進去。所以我需要在這裡做幾件事,這個金鑰是…我實際上想在這裡引用那個 API 金鑰。 |
| |
所以我要做的就是說,好的,那個鍵等於 |
| |
textedit1 我要說的是,就像 Hadley 向你展示的那樣 |
| |
瀏覽幫助索引,弄清楚需要什麼才能獲取該文本,但在這種情況下,我只想說,關鍵是…你去那個textedit1,你得到 |
| |
文字.另外,我想引用這個框,它恰好被稱為 Combo1,用於過濾。所以我要添加 |
| |
我們也把這檔股票稱為 |
| |
等於該變數名 Combo1,然後再次,就像 Hadley 所展示的那樣,被選中。 |
| |
好的,現在我要做的是,我的查詢會抓取那個金鑰,抓取那個庫存,然後訪問網站,ping 一下,然後我們繼續執行程式來示範。所以我這裡只使用一個演示密鑰。我們可能會更改庫存。 |
| |
它會……哦,你知道嗎?這很好 |
| |
這裡的問題是,我忘了在這裡的代碼中更改它,所以我說股票是組合1,但在這裡 |
| |
這告訴我我的股票代號是微軟,也就是說…如果我不把這隻股票放進去,它就無法正確擷取資料。所以,我們再示範一次。向你展示一下,它現在正在查看過濾器,而不是硬編碼的,所以現在它提取的是正確的資料。 |
| |
好的,下一步我想從這兩個來源獲取資料並整合起來。 JMP 16 有一個很棒的功能, |
| |
希望你們都聽過這個新的、改進的日誌,我會繼續清理它。 |
| |
這個日誌的作用是捕捉你可能進行的任何類型的資料操作。我來給你看一個連結的例子。我先把這兩個連起來 |
| |
資料表,你可以選擇如何連接,或選擇什麼類型的 |
| |
您想要在該連線中使用的列,可能是名稱 |
| |
你的 |
| |
數據隨心所欲。一旦你滿意了,就可以點擊「確定」。你會注意到,日誌裡已經記錄了所有我需要的連線操作,所以我要在這裡,把腳本儲存到剪貼簿,然後我就 |
| |
返回並在我的應用程式中創建一個新按鈕 |
| |
這裡。同樣,我將使用按鈕框,但您可以選擇任何您喜歡的類型。再一次,給它一個名字;我們稱之為「連結」。 |
| |
右鍵單擊此處。 |
| |
並在印刷機上執行該腳本。 |
| |
然後只需複製並貼上即可。 |
| |
現在,它會遍歷並進行連接。所以,實際上,我們可以拉取每個單獨的元素並進行連接,但我認為最終目標是一步完成所有操作。 |
| |
你所要做的就是把所有這些腳本放到一個地方,我碰巧提前做了這件事, |
| |
然後……創建一個新按鈕。我會展示我添加到這個腳本中的兩個功能,所以我們就把它叫做“簡易按鈕”,以便與主題保持一致。 |
| |
簡易按鈕。 |
| |
我要 |
| |
抓住這個腳本,所以我會選擇所有這些,複製它們,然後 |
| |
在這裡執行相同的程序。 |
| |
然後貼上。 |
| |
好吧,除了複製貼上已有內容之外,我還在這個腳本中添加了一些內容,其中包括等待命令,它的作用是給我一點時間來 |
| |
讓資料提取在開始連接之前完成,然後我會關閉這兩個額外的資料表,這樣我就不會…我不會只是在多個表中建置。所以讓我們 |
| |
看這個。我要輸入我的 API 金鑰,然後選擇我的股票。點擊「簡易」按鈕,從兩個地方提取數據,等待兩秒鐘,然後將它們合併在一起。 |
| |
這就是最終目標,現在我要把它傳回給哈德利,展示一個如何更順暢地進行資料輸入的好例子。 |
| 哈德利·邁爾斯 |
是的。 |
| |
非常感謝,Pete。現在我們已經向你展示如何使用 SQL 從外部資料庫取得數據 |
| |
資料庫,Pete 向你展示如何從 API(例如 Web API)獲取數據,然後將其與你已有的數據進行組合。你可能希望從其他來源獲取數據,或者需要使用 Python 訪問,這些都沒問題。 |
| |
或者它在不同的文件中,但也可能需要你手動輸入資料。這是一個資料集的範例, |
| |
我們有穀物食品的名稱和製造商,所有這些數據都是從這些盒子的標籤上手動輸入的,不幸的是,這些標籤的格式並不便於自動提取數據。所以需要有人來做這件事 |
| |
手動操作。我以前也做過類似的工作,所以我非常理解那些需要這樣做的人。 |
| |
現在,您可以將它輸入到...像這樣的表中,但我所做的是透過在此處建立此應用程式使它變得更簡單一些。 |
| |
現在你可以看到,他們只需在一個螢幕上輸入,然後就可以添加到表中。我故意省略了最後兩個 |
| |
列。方法完全一樣。我們要做的是…所以你在這裡看到,按鈕做的第一件事 |
| |
它會在表格中添加一行。它會計算表格有多少行,然後針對每一列和行號, |
| |
它只會從每個輸入中抓取數據,然後將它們保存到每個單元格中,對吧?那我們繼續對最後兩個單元格進行操作。 |
| |
你可能已經注意到了,它看起來相當均勻,而且間隔也很好,這是用了這些漂亮的分割器——水平和垂直分割器——才做到的。所以我接下來要在這裡的底部添加一個水平分割器。 |
| |
為此,我們將添加一個面板框 |
| |
底部有一個數字編輯框。 |
| |
我將添加另一個面板盒 |
| |
以及另一個數位編輯框。我們將其命名為 |
| |
我們最後兩列是每份的重量和我們的 |
| |
我們的穀物標籤上的每份杯數。 |
| |
現在,我可以重命名這些傢伙,但我暫時不會這麼做。我只需要繼續。 |
| |
在我們的資料表列中,是每份的重量。 |
| |
還有我們的行號。 |
| |
我將使它等於我們剛剛創建的數位編輯框。 |
| |
這裡也是一樣 |
| |
為了我們的 |
| |
每份杯數 |
| 哈德利·邁爾斯 |
在 edit2 下。 |
| 哈德利·邁爾斯 |
好的,現在,如果我運行這個程序,我可以輸入所有數據,然後得到它 |
| |
進入這些 |
| |
單元格或在底部添加行,但我要向你展示最後一件事,如果你為某人創建這個,我保證他們會非常感激,那就是添加 |
| |
給那邊的圖片加點顏色,給…給應用程式加點顏色。我們繼續,你可以添加公司徽標,或者像我這裡一樣,直接添加一張庫存照片。 |
| |
所以它不必完美。如果我們像這樣添加它,你可以看到,當我們運行它時,它會讓某人的一天比以前更好一點。現在,與其將它儲存為加載項或儲存 |
| |
對於腳本,我要做的就是繼續將其立即保存到資料表中。 |
| |
稱之為添加 |
| |
數據或添加行,無論什麼,現在你可以看到我們的插件就在這裡。所以我可以運行這個插件 |
| |
穀物。很棒的是,如果我按下 Tab 鍵,它就會轉到下一個。 |
| |
我只會添加一些假裝的數據 |
| |
等等。對,添加該行,你就會看到它了。 |
| |
所以,希望你們覺得這些內容有趣,也希望你們有機會運用這些內容,或是創造這些內容。好了,我會把這些內容還給Pete。 |
| 彼得·赫什 |
太好了,謝謝,哈德利。 |
| |
我只想在這裡再說幾句 |
| |
幻燈片。總結我們在這裡看到的情況,存取資料常常很困難,這意味著問題可能會持續比預期更長的時間。我們希望您能從中受益,並簡化資料存取甚至資料輸入。 |
| |
和 |
| |
取得...以正確的格式取得資料並 |
| |
解決方案的 80% 都集中在易於訪問的部分,通常 80% 的時間都花在了這部分。如果能簡化這一環節,就能節省大量時間。 |
| |
讓您的聰明分析師、科學家和工程師致力於解決資料問題,而不是資料存取問題。 |
| |
我們展示了在 JMP 的應用程式建立器中建立簡單按鈕非常簡單,您可以在其中選擇來源、過濾、組合多個來源,甚至手動新增資料。 |
| |
然後,就像 Hadley 所展示的那樣,我們可以使用插件將其分發到整個組織,或者也可以僅使用腳本或應用程式本身來實現。 |
| |
非常感謝大家抽空。希望這篇文章對大家有幫助,我們會在下方聊天中解答大家的任何問題。謝謝! |