教程:複製成磚SQL
磚推薦使用複製到命令與磚SQL的增量和批量數據加載。
請注意
複製成
適用於數據源包含成千上萬的文件。磚建議你使用自動加載程序加載數以百萬計的文件,在磚不支持SQL。
在本教程中,您將使用複製成
命令加載數據從一個Amazon S3 bucket AWS帳戶表在磚SQL。
需求
熟悉磚SQL的用戶界麵。看到磚SQL的用戶指南。
一個Amazon S3 bucket AWS帳戶。創建一個水桶,明白了創建一個桶在AWS文檔。
AWS帳戶創建策略的訪問權限,用戶,訪問鍵與AWS用戶身份和訪問管理(我)。
AWS命令行接口(AWS CLI)本地開發機器上安裝。看到安裝或更新最新版本的AWS CLI在AWS網站上。
能夠創建AWS安全令牌服務(AWS STS)會話令牌AWS帳戶。
步驟1。準備示例數據
的複製成
命令加載數據從一個受支持的源到磚工作區中。支持來源包括CSV、JSON、Avro獸人,拚花,文本和二進製文件。此源碼可以在任何地方,你的磚工作區可以訪問。
本教程是一個場景,在該場景中,數據是Amazon S3存儲桶中:
設置,在此步驟中,我們得到的一些示例數據的副本磚的數據集。然後準備示例數據是存儲在一個現有的S3 bucket AWS帳戶。
在下一步中,你這個樣例數據上傳到S3 bucket。
在第三個步驟中,您設置的訪問權限
複製成
命令。最後,運行
複製成
命令加載數據從S3 bucket回磚工作區。
通常情況下,你不會從磚工作區導出示例數據並導入它。然而,這種情況下需要遵循這個工作流準備示例數據複製成
命令。
準備示例數據,您可以使用磚的SQL編輯器。
在SQL角色側邊欄,點擊創建>查詢。
在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。
在SQL編輯器中,粘貼以下代碼:
選擇*從樣品。nyctaxi。旅行
點擊運行。
在編輯器的底部,單擊省略號圖標,然後單擊下載的CSV文件。
請注意
這個數據集包含近22000行數據。本教程下載隻有前1000行數據。下載所有的行,清除限製1000框,然後重複步驟4 - 5。
第二步:上傳示例數據雲存儲
在這個步驟中,您上傳示例數據從您的本地開發機器進入一個文件夾裏麵的S3 bucket AWS帳戶。
AWS管理控製台登錄,打開Amazon S3控製台AWS帳戶,通常在https://console.aws.amazon.com/s3。
瀏覽並點擊你現有的S3 bucket。本教程使用一桶
nyctaxi-sample-data
。點擊創建文件夾。
輸入一個名稱的文件夾,然後單擊創建文件夾。本教程使用一個文件夾命名
nyctaxi
。單擊
nyctaxi
文件夾中。點擊上傳。
按照屏幕上的指令上傳前一步的CSV文件到這個文件夾中。
步驟3:創建資源雲帳戶訪問雲存儲
在這個步驟中,你在AWS帳戶創建一個用戶,我有足夠的訪問閱讀您上傳到S3的CSV文件。
為用戶創建的策略:打開AWS我控製台AWS帳戶,通常在https://console.aws.amazon.com/iam。
點擊政策。
點擊創建政策。
單擊JSON選項卡。
用下麵的代碼替換現有的JSON代碼。在代碼中,替換:
nyctaxi-sample-data
S3 bucket的名稱。nyctaxi
與S3 bucket中的文件夾的名稱。
{“版本”:“2012-10-17”,“聲明”:({“席德”:“ReadOnlyAccessToTrips”,“效應”:“允許”,“行動”:(“s3: GetObject”,“s3: ListBucket”),“資源”:(“攻擊:aws: s3::: nyctaxi-sample-data”,“攻擊:aws: s3::: nyctaxi-sample-data nyctaxi / *”]}]}
點擊下一個:標簽。
點擊下一個:審查。
政策並單擊輸入一個名稱創建政策。本教程使用的是一個虛構的政策
nyctaxi-s3-ingest-policy
。創建用戶:在側邊欄中,單擊用戶。
點擊添加用戶。
為用戶輸入一個名稱。本教程使用的是一個虛構的用戶命名
nyctaxi-s3-ingest-user
。選擇訪問密鑰——編程訪問框,然後單擊下一個:權限。
點擊直接將現有政策。
選擇旁邊的框
nyctaxi-s3-ingest-policy
政策,然後單擊下一個:標簽。點擊下一個:審查。
點擊創建用戶。
複製訪問密鑰ID和秘密訪問密鑰值,似乎一個安全的位置,當你需要他們AWS STS會話令牌。
獲得AWS STS會話令牌:本地開發機器上,使用AWS CLI創建一個命名剖麵與AWS的憑證,你隻是複製。看到AWS CLI profiles在AWS網站上。本教程使用的是一個虛構的名字概要文件命名
nyctaxi-s3-ingest-profile
。測試你的AWS憑證。要做到這一點,使用AWS CLI運行以下命令,它顯示的內容
nyctaxi
文件夾中。在命令替換:nyctaxi-sample-data
S3 bucket的名稱。nyctaxi
與S3 bucket中的文件夾的名稱。nyctaxi-s3-ingest-profile
用你的名字命名。
aws s3 ls s3: / / nyctaxi-sample-data / nyctaxi nyctaxi-s3-ingest-profile——概要文件
會話令牌,運行以下命令。在命令取代
nyctaxi-s3-ingest-profile
用你的名字命名。aws sts get-session-token nyctaxi-s3-ingest-profile——概要文件
複製AccessKeyId,SecretAccessKey,SessionToken值,似乎一個安全的位置,您將需要在步驟5。
步驟4:創建表
在這個步驟中,你在磚工作區中創建一個表來保存傳入的數據。
在側邊欄中,單擊創建>查詢。
在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。
在SQL編輯器中,粘貼以下代碼:
創建表默認的。nyctaxi_trips(tpep_pickup_datetime時間戳,tpep_dropoff_datetime時間戳,trip_distance雙,fare_amount雙,pickup_zipINT,dropoff_zipINT);
點擊運行。
第五步:雲存儲的樣本數據加載到表中
在這個步驟中,您從S3 bucket CSV文件加載到表在你的磚工作區。
在側邊欄中,單擊創建>查詢。
在SQL編輯器的菜單欄中,選擇您創建的SQL倉庫在需求部分,或選擇另一個您希望使用的SQL倉庫可用。
在SQL編輯器中,粘貼以下代碼。在這段代碼中,替換:
nyctaxi-sample-data
S3 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文件中的每個字段的數據類型。點擊運行。
請注意
如果您點擊運行再一次,沒有新的數據加載到表中。這是因為
複製成
命令隻處理它所認為的新數據。
第六步:清理
當你完成了本教程之後,您可以在雲賬戶清理相關資源和磚如果你不再想要他們。
刪除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 >
刪除我的用戶
打開我控製台AWS帳戶,通常在https://console.aws.amazon.com/iam。
在側邊欄中,單擊用戶。
選擇框nyctaxi-s3-ingest-user,然後單擊刪除。
輸入
nyctaxi-s3-ingest-user
,然後單擊刪除。
刪除我的政策
打開我控製台AWS帳戶,如果尚未開放,通常在https://console.aws.amazon.com/iam。
在側邊欄中,單擊政策。
選擇選項旁邊nyctaxi-s3-ingest-user,然後單擊行動>刪除。
輸入
nyctaxi-s3-ingest-policy
,然後單擊刪除。
刪除S3 bucket
在AWS帳戶打開Amazon S3控製台,通常在https://console.aws.amazon.com/s3。
選擇選項旁邊nyctaxi-sample-data,然後單擊空。
輸入
永久刪除
,然後單擊空。在側邊欄中,單擊桶。
選擇選項旁邊nyctaxi-sample-data,然後單擊刪除。
輸入
nyctaxi-sample-data
,然後單擊刪除桶。
額外的資源
的複製到參考文章