> 백엔드 개발 > 파이썬 튜토리얼 > Polars Delta Lake: 소규모 데이터의 Azure 기능과 노트북

Polars Delta Lake: 소규모 데이터의 Azure 기능과 노트북

Susan Sarandon
풀어 주다: 2025-01-06 06:14:42
원래의
945명이 탐색했습니다.

Polars   Delta Lake: Azure Function vs. Laptop on Small Data

Azure 기반 Polars Deltalake의 성능이 소비자급 노트북과 어떻게 비교되는지 궁금한 적이 있습니까?
아니요? 글쎄요. 제가 호기심을 불러일으켰다면 계속 읽어보세요.

경쟁자는 다음과 같습니다

  1. EliteBook 840 G10, AMD Ryzen 7840U, 8코어, 16스레드, 64GB RAM
  2. Linux B3 SKU 앱 서비스 계획(4코어, 7GB RAM)에서 실행되는 Azure 기능
    • 표준 ADLS2 스토리지 사용
    • 프리미엄 ADLS2 스토리지 포함

사용 가능한 앱 서비스 계획의 전체 목록은 가격을 참조하세요.

테스트 설정

테스트에서는 세 가지 시나리오를 측정합니다

  1. 델타 테이블 생성
  2. 델타 테이블에 쓰기
  3. 델타 테이블에서 읽기

코드는 REST API 엔드포인트를 통해 실행됩니다.

  1. polars_azure_create: https://function-hekori-learning-002.azurewebsites.net/api/poles/azure/create
  2. polars_azure_read: https://function-hekori-learning-002.azurewebsites.net/api/poles/azure/read
  3. polars_azure_write: https://function-hekori-learning-002.azurewebsites.net/api/poles/azure/write
  4. polars_local_create: http://localhost:7071/api/poles/local/create
  5. 폴라스_로컬_읽기: http://localhost:7071/api/폴라s/local/read
  6. polars_local_write: http://localhost:7071/api/poles/local/write

HP EliteBook에서 func start를 사용하여 https://localhost:7071을 실행했습니다.
Azure I에 게시하려면 https://learn.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python
의 지침을 따르세요. 필요한 개발 환경을 설정합니다. 이를 통해
을 통해 함수를 게시할 수 있었습니다. func azure functionapp 게시 function-hekori-learning-002.

북유럽 지역에 Azure 리소스를 설정하기 위해 Terraform을 사용했습니다.

다음은 https://function-hekori-learning-002.azurewebsites.net/api/poles/azure/read 방문 시 실행되는 코드를 보여주는 코드 조각입니다

@app.route(route="polars/azure/read", auth_level=func.AuthLevel.ANONYMOUS)
def polars_azure_read(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Reading from delta table')

    tic = time.time()
    df = pl.read_delta(AZURE_STORAGE_PATH, storage_options=storage_options
                       )

    df = df.sql(
        "select sum(value) as sum, avg(value) as mean, count() as count, name from self group by name order by sum asc"
    )

    toc = time.time()

    logging.info(f"Elapsed time {toc - tic:.2f} seconds")

    return func.HttpResponse(
        "Success from polars." + str(df) + '\n' + "Elapsed time " + str(toc - tic) + " seconds",
        status_code=200
    )

로그인 후 복사

테스트 결과

보시다시피 HP EliteBook은 모든 시나리오에서 대략 10배 더 빠릅니다.

Polars   Delta Lake: Azure Function vs. Laptop on Small Data

해석

개인적인 해석입니다

  1. Azure 함수 타이밍은 동기 작업에 충분합니다. 예를 들어, 클라이언트가 < 2초.
  2. 데이터가 적고 최고의 성능을 원한다면 IO 지연 시간이 짧은 베어메탈 또는 가상 머신에서 Polars를 실행하는 것을 고려해야 합니다.

델타 테이블에는 커밋 3개와 Parquet 파일 2개라는 작은 크기가 있다는 점에 유의하세요. 즉, 런타임은 컴퓨팅 단위에서 파일 액세스에 대한 오버헤드를 효과적으로 측정합니다.

이 기사를 ❤️하고 핵심 처리 이외의 더 큰 데이터 세트를 사용하여 더 많은 벤치마크 결과를 보고 싶다면 이 기사에 ?
구독하시겠습니까? 내 채널로 ???.

위 내용은 Polars Delta Lake: 소규모 데이터의 Azure 기능과 노트북의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿