본문 바로가기
Cloud/Azure

[2021.04.16~19] 인턴 +46 Data Lake Storage Gen1 생성 방법 (Azure - PowerShell 2GB file upload & download method)

by injekim97 2021. 4. 16.
반응형

[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, 밑에 설명)

Azure Data Lake Storage Gen1.pdf
8.39MB

 

 

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 – cloud storage management | Microsoft Azure

Easily manage your Azure storage accounts in the cloud, from Windows, macOS, or Linux, using Azure Storage Explorer.

azure.microsoft.com

 

Azure Storage Explorer를 사용하여 2GB가 넘는 파일을 ADLS Gen1 계정에 업로드하는 예시

upload.gif
1.11MB

-> 해당 이미지가 안 움직이면, 클릭해보면 됨

-> 정 안되면, 위의 gif 파일을 다운로드하여서 보길 바람

 

-> 내가 올린 Q&A에 답변해준 내용을 그대로 가져옴,

-> PowerShell에서 성공했기 때문에 이 방법을 직접적으로 해보진 않았음 (powershell 안되면, 위와 같은 방법으로 시도)

반응형

댓글