天天看點

PyODPS DataFrame:統一的資料查詢語言資料庫執行JOIN或者UNION資料庫和MaxCompute資料總結

前幾天,pyodps釋出了0.7版本,這篇文章給大家介紹下pyodps新版本帶來的重要特性。

之前也有若幹篇文章介紹過了,我們pyodps dataframe是延遲執行的,在調用立即執行的方法,比如execute、persist等之前,都隻是建構了表達式。而真正的執行根據具體的輸入資料,來決定執行的後端。

比如,我們可以根據輸入是pandas dataframe(本地資料),還是maxcompute table(maxcompute資料)來決定是在本地執行,還是在maxcomput上執行。

來到了0.7版本,我們的後端武器庫進一步擴充,現在我們支援postgresql和mysql,原則上我們支援所有的主流資料庫,但我們隻在這兩個資料庫上做了測試。

我們的資料庫執行後端使用 <code>sqlalchemy</code> 實作,想要執行還需要對應資料庫的driver。

現在,如果dataframe輸入的資料是sqlalchemy table,那麼我們就可以使用資料庫後端來執行。

對于postgresql也是一樣。 值得注意的是,現在還有部分dataframe操作,比如自定義函數尚未支援資料庫後端 。

可以看到,pyodps dataframe就是一個統一的資料查詢語言,使用者不需要改寫一行代碼,就可以根據輸入讓資料在maxcompute、本地和資料庫上執行,由于dataframe架構的靈活性,我們甚至還可以擴充出非sql執行後端的支援。

現在,我們也同樣可以join 資料庫和maxcompute上的資料,試想,有一堆使用者資料是在資料庫中進行處理,然後我們無需經過同步資料等繁瑣的過程,我們就可以直接join 資料庫和maxcompute上的資料,這是何其友善的事情。

比如:

我們pyodps一直處在快速疊代的過程中,我們所有所做的努力,都是為了讓大家以更好的體驗來進行資料分析和機器學習。盡管我們很努力,但精力畢竟有限,難免會有bug,會有功能不完善。希望大家能給我們提issue,能貢獻代碼就更好啦。

釘釘掃碼:

PyODPS DataFrame:統一的資料查詢語言資料庫執行JOIN或者UNION資料庫和MaxCompute資料總結