2017-08-02 40 views
0

請原諒我的無知,如果這個問題可能聽起來很傻這裏的專家觀衆加速比我的數據加載操作

目前按我的使用情況 我存在於AWS紅移表中的數據進行一定的分析,併爲他們節省一在S3桶 csv文件(操作是一些什麼類似Pivot for redshift database) ,之後我更新的數據回紅移分貝使用copy命令200個CSV文件進行分析(這是在python3完成)後

目前是生成的這些保存在200個不同的紅移表中

CSV的數量將繼續隨時間增加 目前,整個過程大約需要50-60分鐘才能完成

25分鐘獲得約200 CSV和S3桶更新它們

25分鐘更新約200 CSV到200個AWS紅移表

CSV的大小而變化,形成幾MB到1GB

我一直在尋找的工具或AWS技術,它可以幫助我減輕我的時間

*附加信息

CSV結構不斷變化.Hence我不得不放棄,再次創建表 這將是一個重複的任務,並會在每一個6小時

+1

紅移可能不是你想要做的事情的好用例。 Redshift的確適用於數據倉庫。我從個人經驗中發現,除非您閱讀了他們的最佳實踐文檔,否則Redshift會遇到一些陷入困境的陷阱。如果你想要像不斷生成報告那樣做,可以看看使用EMR。 – user602525

回答

1

執行您應該探索Athena。這是一個包含在AWS軟件包中的工具,可以讓您靈活地查詢csv(甚至是gzip)文件。

它將爲您節省手動複製Redshift表中的數據所需的時間,並且您將能夠從csv本身查詢數據集。雅典娜有能力從s3桶查詢他們。

但是,仍然處於開發階段,您不得不花費一些時間,因爲它不是非常用戶友好。查詢中的語法錯誤會將您從AWS會話中註銷,而不會引發語法錯誤。此外,由於Athena仍然在很大程度上尚未開發,因此您不會在互聯網上找到太多文檔和開發人員會談。

雅典娜根據您的查詢提取的數據收取費用,因此更容易使用。如果查詢無法執行,亞馬遜將不會向您收費。

+1

如果您想將csv中的數據與Redshift中的數據組合起來,請查看使用Redshift Spectrum--它與Athena具有類似的功能,但這些文件在Redshift中顯示爲「表格」。 – Nathan

+0

感謝您的額外信息。一定會探索它。 –

2

可以實現由顯著加速:

  1. 使用CSV的多部分上傳給S3,所以不是等待單個文件上傳的多部上傳將文件上傳到S3並聯,節省您相當多的時間。閱讀它herehereHere是它的Boto3參考。
  2. 將數據從S3並行複製到Redshift。如果將文件分成多個部分,然後運行COPY命令,則數據將從多個文件並行加載,而不是等待1 GB文件加載,這可能非常慢。詳細瞭解它here

希望這會有所幫助。

+0

如果您認爲它回答了您的問題,請將問題標記爲「已接受」。 – Yankee