주요 컨텐츠로 이동

간소화된 XML 데이터 수집 기능 발표

이 포스트 공유하기

데이터브릭스에서 XML 데이터 수집을 위한 기능을 기본으로 지원합니다.

XML은 제조, 의료, 법률, 여행, 금융 등 다양한 사용 사례에서 복잡한 데이터 구조를 표현하는 데 널리 사용되는 파일 형식입니다. 이러한 업계에서 분석과 AI를 위한 새로운 기회를 찾으면서, 점점 더 많은 XML 데이터를 활용해야 할 필요성이 커지고 있습니다. 데이터브릭스 고객은 이러한 데이터를 데이터 인텔리전스 플랫폼으로 수집하고, 여기서 Mosaic AI 및 Databricks SQL과 같은 다른 기능을 사용하여 비즈니스 가치를 창출할 수 있습니다.

그러나 안정적인 XML 파이프라인을 구축하려면 많은 작업이 필요할 수 있습니다. XML 파일은 반구조화(semi-structured)되어 있고 종종 상당히 크기 때문에 처리하기가 복잡할 때가 많습니다. 지금까지 XML 수집을 위해서는 오픈 소스 패키지를 사용하거나 XML을 다른 파일 형식으로 변환해야 했으며, 데이터 엔지니어는 이러한 복잡한 파이프라인을 유지 관리해야 했습니다.

이러한 프로세스를 간소화하기 위해 Auto Loader와 COPY INTO에 XML 파일에 대한 기본 지원 기능을 개발했습니다. (XML용 Auto Loader는 Delta Live TablesDatabricks Workflows와 함께 작동합니다). 이 지원을 통해 외부 패키지나 파일 형식 변환 없이 직접 수집, 쿼리, 구문 분석이 가능합니다. 또한 사용자는 Auto Loader에서 스키마 추론 및 진화 같은 강력한 기능을 활용할 수 있습니다.

예제 1: 배치 워크로드에서 XML 파일 수집

df = (spark.read
     .option("rowTag", "book")
     .xml(inputPath))

다음 XML이 포함된 샘플 입력 파일에 대해:

<books>
  <book id="103">
    <author>Corets, Eva</author>
    <title>Maeve Ascendant</title>
  </book>
  <book id="104">
    <author>Corets, Eva</author>
    <title>Oberon's Legacy</title>
  </book>
</books>

위의 쿼리는 다음과 같은 스키마와 구문 분석된 결과를 추론합니다:

root
|-- _id: long (nullable = true)    
|-- author: string (nullable = true)
|-- title: string (nullable = true)

+---+-----------+---------------+
|_id|author     |title          |
+---+-----------+---------------+
|103|Corets, Eva|Maeve Ascendant|
|104|Corets, Eva|Oberon's Legacy|
+---+-----------+---------------+

새로운 XML 전용 기능도 활용할 수 있습니다. 예를 들어, 이제 XML 스키마 정의(XSD)에 대해 각 행 수준 XML 레코드의 유효성을 검사할 수 있습니다. 또한 from_xml Apache Spark 함수를 사용해 SQL 열이나 스트리밍 데이터 소스(예: Apache Kafka, Amazon Kinesis 등)에 포함된 XML 문자열을 구문 분석할 수 있습니다.

예 2: 스트리밍 워크로드에서 Auto Loader를 사용하여 XML 파일 수집

이 예는 스키마 추론, 스키마 진화 및 XSD 유효성 검사를 보여줍니다.

(spark.readStream
    .format("cloudFiles")  
    .option("cloudFiles.format", "xml")
    .option("rowTag", "book")
    .option("rowValidationXSDPath", xsdPath)
    .option("cloudFiles.schemaLocation", schemaPath)
    .option("cloudFiles.schemaEvolutionMode", "addNewColumns")
    .load(inputPath)
    .writeStream
    .format("delta")
    .option("mergeSchema", "true")
    .option("checkpointLocation", checkPointPath)
    .trigger(Trigger.AvailableNow()))

Lufthansa의 XML 데이터 수집

Lufthansa Industry Solutions은 데이터 인텔리전스 플랫폼에 구축된 Lufthansa Cargo 데이터 솔루션을 위해 XML 데이터 소스를 수집합니다. 새로운 XML 지원 덕분에 수집을 간소화하고 데이터 엔지니어링 업무의 상당 부분을 자동화할 수 있었습니다. 그 결과, 실무자들은 복잡한 파이프라인을 유지 관리하는 대신 혁신에 집중할 수 있게 되었습니다.

"Lufthansa Cargo는 Auto Loader를 이용해 XML 데이터의 통합을 간소화하여 복잡한 항공화물 예약 데이터를 처리하는 데 있어 중요한 진전을 이룰 수 있었습니다. 비용 효율적이고 신뢰할 수 있는 데이터 "랜딩", 스키마 추론 및 진화 덕분에 "자동 조종" 모드가 가능해졌습니다. 전반적으로 데이터브릭스와 Lufthansa Industry Solutions과의 협업 덕분에 우리 팀은 중요한 업무와 혁신에 집중할 수 있게 되었습니다." - 비욘 로코르, Lufthansa Cargo AD&M BI 분석 책임자 & 옌스 웨프너, Lufthansa Cargo 분석 기술 관리자

다음 단계

네이티브 XML 지원은 이제 모든 클라우드 플랫폼에서 공개 미리 보기로 제공되며, Delta Live Tables과 Databricks SQL 모두에서 사용할 수 있습니다. 자세한 내용은 설명서를 참조하세요.

 

(번역: Youngkyong Ko)  Original Post

Databricks 무료로 시작하기

관련 포스트

모든 플랫폼 블로그 포스트 보기