[2021.04.16~19] 인턴 +46 Data Lake Storage Gen1 생성 방법 (Azure - PowerShell 2GB file upload & download method)
digitalbourgeois.tistory.com/72
-> 해당 게시글의 내용을 정리함.
* 데이터 레이크(data lake)란?
-> 모든 정형 및 비정형 데이터를 모든 규모로 저장할 수 있는 중앙 집중식 저장소
-> 빅데이터를 효율적으로 분석하고 사용하고자 다양한 영역의 Raw 데이터(가공되지 않은 데이터)를 한 곳에 모아서 관리하고자 하는 것을 바로 Data Lake라 함.
즉, 가공되지 않은 다양한 종류의 데이터를 한 곳에 모아둔 저장소의 집합
* Data Lake 주요 기술 이점
1. 데이터의 종류 무한
2. 데이터 조회 방법 제한 X
3. Silo를 만들지 X
* Data Lake의 단점
1. 가시성
-> DW와 달리 Data Lake는 데이터 거버넌스가 내장되어 있지 않고, Data Lake 초창기에는 거버넌스를 고려하지 않음
실제로 기업들은 데이터를 관리하지 않고 수시로 적재
-> Why? 빠르고 비용이 덜 든다고 생각했기 때문
2. 거버넌스
-> 데이터가 Data Lake에 유입되면 메타데이터가 자동 적용되지 않음.
-> 보유 데이터에 대한 정보를 제공하는 세 종류 (기술, 운영, 비즈니스) 메타데이터가 없으면, Data Lake를 구성하고 관리 정책을 적용하는 것은 불가능
3. 복잡성
-> 거대한 Data Lake 환경을 구축하는 일은 복잡하며 수많은 기술을 통합해야 함
-> 기업은 데이터 Silo를 제거하기 위해 기존 데이터베이스, 시스템 및 애플리케이션을 통합하는 방법
-> 특정 프로세스를 자동화하고 운영하는 방법
-> 조직의 민첩성을 높이기 위해 데이터 접근을 확대하는 방법
-> 데이터를 개인적으로 안전하게 유지하기 위해 전사적인 거버넌스 정책을 구현하고 시행하는 방법을 결정해야 한다.
---------------------------------------------------------------------------------------------------------------------------------
이제, Data Lake Storage Gen1을 만들어 보자.
-> 로그인 후, Data Lake Storage Gen1 클릭
-> Create new 버튼을 눌러서 Resource group(리소스 그룹)을 만듦
-> Next : Pricing 클릭
-> 가격 결제 방법 : Pay-as-You-Go(내가 한만큼 내기) , Monthly commitment(월별 결제)
-> Next : Encryption
-> Next : Tags
-> Next : Review + create 버튼 클릭
-> Create 버튼 클릭
-> Go to resoruce 클릭
-> 자, Azure에서 제공해주는 DataLakeStore를 만들었다. 이제, 파일을 업로드해보자.
----------------------------------------------------------------------------------------------------------------------------
업로드 방법
-> 업로드하고 싶으면, Upload 클릭
-> 2기가 이하만 사이트에서 업로드가 된다.
-> 2기가 이상의 파일을 올리려면, powershell를 통해 올려야 한다.
★★★★★ PowerShell를 통해 2GB 이상 파일 올리기 ★★★★★
docucment에서 나와 있는 명령어
Import-AzDataLakeStoreItem -AccountName $dataLakeStorageGen1Name `
-Path "C:\sampledata\vehicle1_09142014.csv" `
-Destination $myrootdir\mynewdirectory\vehicle1_09142014.csv.
내가 직접 POWERSHELL에 쓴 명령어
Import-AzDataLakeStoreItem -AccountName "0419databox" `
-Path "C:\temp\access.log" `
-Destination $myrootdir\PS\apache.log
* $dataLakeStorageGen1Name 에서, 0419 databox로 입력하지 말고, "0419databox" (꼭 큰따옴표를 사용할 것)
* 그런 후에, 뒤에 ` 있으니 빼먹지 말 것
* -Path : "경로" ` 로 입력
* -Destination는datalakestorage에서 어느 디렉터리에 넣을 것인지 묻고, 파일명은 뭘로 할 것인지?
-> 파일이 업로드 중이라, 위에 입력한 명령어 중 일부가 잘린 상황
-> 기다리면 됨
-> 파일이 완전히 올라간 상황 (제대로 업로드되니, 쳤던 명령어가 잘리지 않고 제대로 나옴)
-> 웹 사이트 내에서 확인 가능하다.
마찬가지로, 용량이 크기 때문에 파일을 다운로드 할려면, PowerShell을 이용 (다운로드 방법)
Export-AzDataLakeStoreItem -AccountName "0419databox" `
-Path $myrootdir\mynewdirectory\powershellupload.log `
-Destination "C:\mkdir\test.log".
-> 위의 명령을 통해, Data Lake Storage Gen1에 저장된 파일을 PC로 저장 할 수 있다.(다운로드 가능)
-> 경로는 C드라이브에 mkdir폴더 안,test.log로 파일을 저장하였다. (제대로 다운로드 되었다)
* 250 MB 이상 데이터는 무조건 PowerShell 또는 Azure Storage Explorer 를 사용해야 다운 가능하다.
---------------------------------------------------------------------------------------------------------------------------------
Powershell을 통해 Data Lake Storage Gen 1 계정 만들기 ~ 2기가 이상 데이터를 업로드 하기
출처 : docs.microsoft.com/ko-kr/azure/data-lake-store/data-lake-store-get-started-powershell(안봐도 상관 X, 밑에 설명)
Data Lake Storage Gen1 계정 만들기
# Log in to your Azure account
Connect-AzAccount
-> 해당 명령어를 치게 되면, 팝업창으로 로그인 창이 뜬다. 로그인이 성공했을 때 위와 같은 화면을 출력해줌.
# List all the subscriptions associated to your account
Get-AzSubscription
-> 그대로 위의 명령어 복붙 해서 사용 (개인정보보호를 위해 일부분 id를 짜름)
# Select a subscription
Set-AzContext -SubscriptionId <subscription ID>
-> Set-AzContext -SubscriptionId <id> (위에 Get-AzSubscription를 통해 나온 id 값을 넣어주면 됨)
* 마찬가지로 개인정보보호를 위해 일부분 id를 짜름
# Register for Azure Data Lake Storage Gen1
Register-AzResourceProvider -ProviderNamespace "Microsoft.DataLakeStore"
-> 그대로 위의 명령어 복붙 해서 사용
----------------------------------------------------------------------------------------------------------------
리소스 그룹 만들기
$resourceGroupName = "<your new resource group name>"
New-AzResourceGroup -Name $resourceGroupName -Location "East US 2"
-> $resourceGroupName = "<your new resource group name>"에서 리소스 그룹명만 정해주면 된다.
--------------------------------------------------------------------------------------------------------------------------------
Data Lake Storage Gen1 계정 만들기(리소스 그룹 안에 만드는 것임)
* 이름은 소문자와 숫자만 포함할 것(나머지 에러 발생)
계정이 성공적으로 만들어졌는지 확인
Test-AzDataLakeStoreAccount -Name $dataLakeStorageGen1Name
-> $dataLakeStorageGen1Name 자리에 위에서 만든 dataLakeStorageGen1Name을 쳐주면 됨.
-> 제대로 만들어졌으면, True라고 표시
* 여기서 보니까, $변수 = 즉 $뒤엔 자기가 설정한 값을 정해주면 되는 거 같음($ = 변수라고 생각?)
-----------------------------------------------------------------------------------------------------------------------------------
디렉터리 구조 만들기 (디렉터리를 만들어 데이터를 관리하고 저장하는 용도)
루트 디렉터리를 지정
-> $myrootdir = "/"
지정된 루트 아래 mynewdirectory라는 새 디렉터리를 만듦
New-AzDataLakeStoreItem -Folder -AccountName $dataLakeStorageGen1Name -Path $myrootdir/mynewdirectory
-> $dataLakeStorageGen1Name에, datalake폴더명을 넣어주면 됨. 위에서 0419databox라 했으니, 그대로 입력
새 디렉터리가 성공적으로 만들어졌는지 확인
Get-AzDataLakeStoreChildItem -AccountName $dataLakeStorageGen1Name -Path $myrootdir
-> 제대로 만들어짐 (시간은 아마 외국 시간인 듯?)
* $dataLakeStorageGen1Name 에 0419databox 넣어주면 된다.
-> azure사이트에서도, 제대로 만들어졌는지를 확인할 수 있다.
★★★★★★★ 데이터 업로드 (2GB 이상 데이터 파일 업로드 - POWERSHELL) ★★★★★★★
docucment에서 나와 있는 명령어
Import-AzDataLakeStoreItem -AccountName $dataLakeStorageGen1Name `
-Path "C:\sampledata\vehicle1_09142014.csv" `
-Destination $myrootdir\mynewdirectory\vehicle1_09142014.csv.
내가 직접 POWERSHELL에 쓴 명령어
Import-AzDataLakeStoreItem -AccountName "0419databox" `
-Path "C:\temp\access.log" `
-Destination $myrootdir\mynewdirectory\powershellupload.log
* $dataLakeStorageGen1Name 에서, 0419databox 로 입력하지 말고, "0419databox" (꼭 큰따옴표를 사용할 것)
* 그런 후에, 뒤에 ` 있으니 빼먹지 말 것
* -Path : "경로" ` 로 입력
* -Destination는 datalakestorage에서 어느 디렉터리에 넣을 것인지 묻고, 파일명은 뭘로 할 것인지?
-> 2기가 이상 데이터를 올리려면, powershell을 사용하자.
-> Azure에서 제대로 올려진 것을 확인할 수 있다.
-----------------------------------------------------------------------------------------------------------------------------------
또 다른 방법, Azure Storage Explorer를 사용하여 ADLS gen1 계정에 파일을 업로드할 수 있습니다.
azure.microsoft.com/en-us/features/storage-explorer/
Azure Storage Explorer를 사용하여 2GB가 넘는 파일을 ADLS Gen1 계정에 업로드하는 예시
-> 해당 이미지가 안 움직이면, 클릭해보면 됨
-> 정 안되면, 위의 gif 파일을 다운로드하여서 보길 바람
-> 내가 올린 Q&A에 답변해준 내용을 그대로 가져옴,
-> PowerShell에서 성공했기 때문에 이 방법을 직접적으로 해보진 않았음 (powershell 안되면, 위와 같은 방법으로 시도)
'Cloud > Azure' 카테고리의 다른 글
[2021.07.19] 인턴 +140 How to connect Mysql on Azure? (+Workbench connect, ADD data DB) (0) | 2021.07.19 |
---|---|
[2021.06.16] 인턴 +107 How to solve port 22: Connection timed out in Azure (0) | 2021.06.16 |
[2021.04.21] 인턴 +51 Data Lake Storage Gen2 생성 방법 (0) | 2021.04.21 |
[2021.04.20] 인턴 +50 Linux (VM - Azure) 데이터 디스크 마운트 방법 (0) | 2021.04.20 |
[2021.04.15] 인턴 +45 Ubuntu에서 MySQL 설치 방법 (0) | 2021.04.15 |
댓글