教程:複製成磚SQL

磚推薦使用複製到命令與磚SQL的增量和批量數據加載。

請注意

複製適用於數據源包含成千上萬的文件。磚建議你使用自動加載程序加載數以百萬計的文件,在磚不支持SQL。

在本教程中,您將使用複製命令加載數據從一個Amazon S3 bucket AWS帳戶表在磚SQL。

需求

  1. 磚的SQL倉庫。創建一個SQL倉庫,看看創建一個SQL倉庫

  2. 熟悉磚SQL的用戶界麵。看到磚SQL的用戶指南

  3. 一個Amazon S3 bucket AWS帳戶。創建一個水桶,明白了創建一個桶在AWS文檔。

  4. AWS帳戶創建策略的訪問權限,用戶,訪問鍵與AWS用戶身份和訪問管理(我)。

  5. AWS命令行接口(AWS CLI)本地開發機器上安裝。看到安裝或更新最新版本的AWS CLI在AWS網站上。

  6. 能夠創建AWS安全令牌服務(AWS STS)會話令牌AWS帳戶。

步驟1。準備示例數據

複製命令加載數據從一個受支持的源到磚工作區中。支持來源包括CSV、JSON、Avro獸人,拚花,文本和二進製文件。此源碼可以在任何地方,你的磚工作區可以訪問。

本教程是一個場景,在該場景中,數據是Amazon S3存儲桶中:

  • 設置,在此步驟中,我們得到的一些示例數據的副本磚的數據集。然後準備示例數據是存儲在一個現有的S3 bucket AWS帳戶。

  • 在下一步中,你這個樣例數據上傳到S3 bucket。

  • 在第三個步驟中,您設置的訪問權限複製命令。

  • 最後,運行複製命令加載數據從S3 bucket回磚工作區。

通常情況下,你不會從磚工作區導出示例數據並導入它。然而,這種情況下需要遵循這個工作流準備示例數據複製命令。

準備示例數據,您可以使用磚的SQL編輯器

  1. SQL角色側邊欄,點擊創建>查詢

  2. 在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。

  3. 在SQL編輯器中,粘貼以下代碼:

    選擇*樣品nyctaxi旅行
  4. 點擊運行

  5. 在編輯器的底部,單擊省略號圖標,然後單擊下載的CSV文件

    請注意

    這個數據集包含近22000行數據。本教程下載隻有前1000行數據。下載所有的行,清除限製1000框,然後重複步驟4 - 5。

第二步:上傳示例數據雲存儲

在這個步驟中,您上傳示例數據從您的本地開發機器進入一個文件夾裏麵的S3 bucket AWS帳戶。

  1. AWS管理控製台登錄,打開Amazon S3控製台AWS帳戶,通常在https://console.aws.amazon.com/s3

  2. 瀏覽並點擊你現有的S3 bucket。本教程使用一桶nyctaxi-sample-data

  3. 點擊創建文件夾

  4. 輸入一個名稱的文件夾,然後單擊創建文件夾。本教程使用一個文件夾命名nyctaxi

  5. 單擊nyctaxi文件夾中。

  6. 點擊上傳

  7. 按照屏幕上的指令上傳前一步的CSV文件到這個文件夾中。

步驟3:創建資源雲帳戶訪問雲存儲

在這個步驟中,你在AWS帳戶創建一個用戶,我有足夠的訪問閱讀您上傳到S3的CSV文件。

  1. 為用戶創建的策略:打開AWS我控製台AWS帳戶,通常在https://console.aws.amazon.com/iam

  2. 點擊政策

  3. 點擊創建政策

  4. 單擊JSON選項卡。

  5. 用下麵的代碼替換現有的JSON代碼。在代碼中,替換:

    • nyctaxi-sample-dataS3 bucket的名稱。

    • nyctaxi與S3 bucket中的文件夾的名稱。

    {“版本”:“2012-10-17”,“聲明”:({“席德”:“ReadOnlyAccessToTrips”,“效應”:“允許”,“行動”:(“s3: GetObject”,“s3: ListBucket”),“資源”:(“攻擊:aws: s3::: nyctaxi-sample-data”,“攻擊:aws: s3::: nyctaxi-sample-data nyctaxi / *”]}]}
  6. 點擊下一個:標簽

  7. 點擊下一個:審查

  8. 政策並單擊輸入一個名稱創建政策。本教程使用的是一個虛構的政策nyctaxi-s3-ingest-policy

  9. 創建用戶:在側邊欄中,單擊用戶

  10. 點擊添加用戶

  11. 為用戶輸入一個名稱。本教程使用的是一個虛構的用戶命名nyctaxi-s3-ingest-user

  12. 選擇訪問密鑰——編程訪問框,然後單擊下一個:權限

  13. 點擊直接將現有政策

  14. 選擇旁邊的框nyctaxi-s3-ingest-policy政策,然後單擊下一個:標簽

  15. 點擊下一個:審查

  16. 點擊創建用戶

  17. 複製訪問密鑰ID秘密訪問密鑰值,似乎一個安全的位置,當你需要他們AWS STS會話令牌。

  18. 獲得AWS STS會話令牌:本地開發機器上,使用AWS CLI創建一個命名剖麵與AWS的憑證,你隻是複製。看到AWS CLI profiles在AWS網站上。本教程使用的是一個虛構的名字概要文件命名nyctaxi-s3-ingest-profile

  19. 測試你的AWS憑證。要做到這一點,使用AWS CLI運行以下命令,它顯示的內容nyctaxi文件夾中。在命令替換:

    • nyctaxi-sample-dataS3 bucket的名稱。

    • nyctaxi與S3 bucket中的文件夾的名稱。

    • nyctaxi-s3-ingest-profile用你的名字命名。

    aws s3 ls s3: / / nyctaxi-sample-data / nyctaxi nyctaxi-s3-ingest-profile——概要文件
  20. 會話令牌,運行以下命令。在命令取代nyctaxi-s3-ingest-profile用你的名字命名。

    aws sts get-session-token nyctaxi-s3-ingest-profile——概要文件
  21. 複製AccessKeyId,SecretAccessKey,SessionToken值,似乎一個安全的位置,您將需要在步驟5。

步驟4:創建表

在這個步驟中,你在磚工作區中創建一個表來保存傳入的數據。

  1. 在側邊欄中,單擊創建>查詢

  2. 在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。

  3. 在SQL編輯器中,粘貼以下代碼:

    創建默認的nyctaxi_trips(tpep_pickup_datetime時間戳,tpep_dropoff_datetime時間戳,trip_distance,fare_amount,pickup_zipINT,dropoff_zipINT);
  4. 點擊運行

第五步:雲存儲的樣本數據加載到表中

在這個步驟中,您從S3 bucket CSV文件加載到表在你的磚工作區。

  1. 在側邊欄中,單擊創建>查詢

  2. 在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。

  3. 在SQL編輯器中,粘貼以下代碼。在這段代碼中,替換:

    • nyctaxi-sample-dataS3 bucket的名稱。

    • nyctaxi與S3 bucket中的文件夾的名稱。

    • < your-AccessKeyId >的值AccessKeyId從步驟3。

    • < your-SecretAccessKey >的值SecretAccessKey從步驟3。

    • < your-SessionToken >的值SessionToken從步驟3。

    複製默認的nyctaxi_trips“s3: / / nyctaxi-sample-data / nyctaxi /”(憑證(AWS_ACCESS_KEY=“< your-AccessKeyId >”,AWS_SECRET_KEY=“< your-SecretAccessKey >”,AWS_SESSION_TOKEN=“< your-SessionToken >”))FILEFORMAT=CSVFORMAT_OPTIONS(“頭”=“真正的”,“inferSchema”=“真正的”);選擇*默認的nyctaxi_trips;

    請注意

    FORMAT_OPTIONS根據不同FILEFORMAT。在這種情況下,選項指示磚將CSV文件的第一行標題,和inferSchema選項指示磚自動確定CSV文件中的每個字段的數據類型。

  4. 點擊運行

    請注意

    如果您點擊運行再一次,沒有新的數據加載到表中。這是因為複製命令隻處理它所認為的新數據。

第六步:清理

當你完成了本教程之後,您可以在雲賬戶清理相關資源和磚如果你不再想要他們。

刪除AWS CLI命名的概要文件

在你的~ / .aws /憑證文件為Unix、Linux和macOS,或在你的% USERPROFILE % \ .aws \憑證文件窗口,刪除下麵的部分文件,然後保存文件:

[nyctaxi-s3-ingest-profile] aws_access_key_id = < your-access-key-id > aws_secret_access_key = < your-secret-access-key >

刪除我的用戶

  1. 打開我控製台AWS帳戶,通常在https://console.aws.amazon.com/iam

  2. 在側邊欄中,單擊用戶

  3. 選擇框nyctaxi-s3-ingest-user,然後單擊刪除

  4. 輸入nyctaxi-s3-ingest-user,然後單擊刪除

刪除我的政策

  1. 打開我控製台AWS帳戶,如果尚未開放,通常在https://console.aws.amazon.com/iam

  2. 在側邊欄中,單擊政策

  3. 選擇選項旁邊nyctaxi-s3-ingest-user,然後單擊行動>刪除

  4. 輸入nyctaxi-s3-ingest-policy,然後單擊刪除

刪除S3 bucket

  1. 在AWS帳戶打開Amazon S3控製台,通常在https://console.aws.amazon.com/s3

  2. 選擇選項旁邊nyctaxi-sample-data,然後單擊

  3. 輸入永久刪除,然後單擊

  4. 在側邊欄中,單擊

  5. 選擇選項旁邊nyctaxi-sample-data,然後單擊刪除

  6. 輸入nyctaxi-sample-data,然後單擊刪除桶

刪除表

  1. 在側邊欄中,單擊創建>查詢

  2. 選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。

  3. 粘貼以下代碼:

    下降默認的nyctaxi_trips;
  4. 點擊運行

  5. 懸停在這個查詢選項卡,然後單擊X圖標。

刪除查詢SQL編輯器

  1. 在磚工作區SQL角色,點擊SQL編輯器在側邊欄。

  2. SQL編輯器的菜單欄,懸停在本教程為每個查詢創建選項卡,然後單擊X圖標。

阻止SQL倉庫

如果你不使用SQL倉庫其他任務,你應該停止SQL倉庫,以避免額外的成本。

  1. SQL角色,在側邊欄,點擊SQL倉庫

  2. SQL倉庫的名稱,點擊停止

  3. 當出現提示時,單擊停止一次。

額外的資源