Azure Data Factory 및 Azure Synapse Analytics의 구분된 텍스트 형식
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
구분된 텍스트 파일을 구문 분석하거나 데이터를 구분된 텍스트 형식으로 쓰려는 경우 이 문서를 따릅니다.
구분 기호로 분리된 텍스트 형식은 다음 커넥터에 대해 지원됩니다.
- Amazon S3
- Amazon S3 호환 스토리지
- Azure Blob
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Azure 파일
- 파일 시스템
- FTP
- Google Cloud Storage
- HDFS
- HTTP
- Oracle Cloud Storage
- SFTP
데이터 세트 속성
데이터 세트를 정의하는 데 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요. 이 섹션에서는 구분된 텍스트 데이터 세트에서 지원하는 속성 목록을 제공합니다.
속성 | 설명 | 필수 |
---|---|---|
type | 데이터 세트의 type 속성을 DelimitedText로 설정해야 합니다. | 예 |
location | 파일의 위치 설정입니다. 각 파일 기반 커넥터에는 자체 위치 유형과 지원되는 속성이 있습니다 location . |
예 |
columnDelimiter | 파일의 열을 구분하는 데 사용되는 문자입니다. 기본값은 쉼표 , 입니다. 열 구분 기호가 빈 문자열로 정의되면 구분 기호가 없음을 의미하며 전체 줄이 단일 열로 표시됩니다.현재 열 구분 기호는 매핑 데이터 흐름에만 지원되고 복사 작업에는 지원되지 않습니다. |
아니요 |
rowDelimiter | 복사 작업에서 파일의 행을 구분하는 데 사용되는 문자 또는 "\r\n"입니다. 기본값은 읽기의 경우 ["\r\n", "\r", "\n"] 중 하나이고, 쓰기의 경우 "\r\n"입니다. "\r\n"은 복사 명령에서만 지원됩니다. 매핑 데이터 흐름의 경우 파일의 행을 구분하는 데 사용되는 단일 또는 두 문자입니다. 기본값은 읽기의 경우 ["\r\n", "\r", "\n"] 중 하나이고, 쓰기의 경우 "\n"입니다. 행 구분 기호를 구분 기호(빈 문자열)로 설정하면 열 구분 기호도 구분 기호(빈 문자열)로 설정되지 않아야 합니다. 즉, 전체 콘텐츠를 단일 값으로 처리해야 합니다. 현재 행 구분 기호는 매핑 데이터 흐름에만 지원되고 복사 작업에는 지원되지 않습니다. |
아니요 |
quoteChar | 열 구분 기호가 포함된 경우 열 값을 인용할 단일 문자입니다. 기본값은 큰따옴표 " 입니다. 빈 문자열로 정의되는 경우 quoteChar 따옴표 문자가 없고 열 값이 따옴표로 묶 escapeChar 이지 않고 열 구분 기호와 그 자체를 이스케이프하는 데 사용됨을 의미합니다. |
아니요 |
escapeChar | 따옴표 안에 따옴표를 이스케이프할 단일 문자입니다. 기본값은 백슬래시 \ 입니다. escapeChar 를 빈 문자열로 정의한 경우에는 quoteChar 도 빈 문자열로 설정해야 합니다. 이 경우 모든 열 값에 구분 기호가 포함되지 않아야 합니다. |
아니요 |
firstRowAsHeader | 첫 번째 행을 열 이름이 있는 머리글 줄로 처리/만들지 여부를 지정합니다. 허용되는 값은 true 및 false(기본값)입니다. 헤더로 첫 번째 행이 false이면 UI 데이터 미리 보기 및 조회 작업 출력은 열 이름을 Prop_{n}(0부터 시작)으로 자동으로 생성합니다. 복사 작업에는 원본에서 싱크로의 명시적 매핑이 필요하며 서수(1부터 시작)로 열을 찾고 데이터 흐름 목록을 매핑하고 이름이 Column_{n}(1부터 시작)인 열을 찾습니다. |
아니요 |
nullValue | null 값의 문자열 표현을 지정합니다. 기본값은 빈 문자열입니다. |
아니요 |
encodingName | 테스트 파일을 읽고 쓰는 데 사용되는 인코딩 형식입니다. 허용되는 값: "UTF-8","UTF-8 without BOM", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258". 참고 매핑 데이터 흐름은 UTF-7 인코딩을 지원하지 않습니다. 참고 매핑 데이터 흐름은 BOM(Byte Order Mark)을 사용한 UTF-8 인코딩을 지원하지 않습니다. |
아니요 |
compressionCodec | 텍스트 파일을 읽고 쓰는 데 사용되는 압축 코덱입니다. 허용되는 값은 bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy 또는 lz4입니다. 기본값은 압축되지 않음입니다. 현재 복사 작업 "snappy" 및 "lz4"를 지원하지 않으며 매핑 데이터 흐름은 "ZipDeflate", "TarGzip" 및 "Tar"를 지원하지 않습니다. 참고 복사 작업을 통해 ZipDeflate/TarGzip/Tar 파일의 압축을 풀고 파일 기반 싱크 데이터 저장소에 쓸 때, 기본적으로 파일은 <path specified in dataset>/<folder named as source compressed file>/ 과 같이 폴더로 추출됩니다. 즉, 복사 작업 원본에서 preserveZipFileNameAsFolder /preserveCompressionFileNameAsFolder 를 사용하여 압축된 파일의 이름을 폴더 구조로 유지할지 여부를 제어합니다. |
아니요 |
compressionLevel | 압축 비율입니다. 허용되는 값은 최적 또는 가장 빠릅니다. - 가장 빠른 속도: 결과 파일이 최적으로 압축되지 않은 경우에도 압축 작업이 가능한 한 빨리 완료되어야 합니다. - 최적: 작업을 완료하는 데 시간이 더 오래 걸리더라도 압축 작업을 최적으로 압축해야 합니다. 자세한 내용은 압축 수준 항목을 참조하세요. |
아니요 |
다음은 Azure Blob Storage에서 구분된 텍스트 데이터 세트의 예입니다.
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"columnDelimiter": ",",
"quoteChar": "\"",
"escapeChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
복사 작업 속성
작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 구분된 텍스트 원본 및 싱크에서 지원하는 속성 목록을 제공합니다.
원본으로 구분된 텍스트
복사 작업 *source* 섹션에서 지원되는 속성은 다음과 같습니다.
속성 | 설명 | 필수 |
---|---|---|
type | 복사 작업 원본의 type 속성을 DelimitedTextSource로 설정해야 합니다. | 예 |
형식설정 | 속성 그룹입니다. 아래의 구분된 텍스트 읽기 설정 표를 참조하세요. | 아니요 |
storeSettings | 데이터 저장소에서 데이터를 읽는 방법에 대한 속성 그룹입니다. 각 파일 기반 커넥터에는 storeSettings 아래에 고유의 지원되는 읽기 설정이 있습니다. |
아니요 |
다음에서 구분된 텍스트 읽기 설정을 지원합니다formatSettings
.
속성 | 설명 | 필수 |
---|---|---|
type | formatSettings의 형식을 DelimitedTextReadSettings로 설정해야 합니다. | 예 |
skipLineCount | 입력 파일에서 데이터를 읽을 때 건너뛸 비어 있지 않은 행의 수를 나타냅니다. skipLineCount와 firstRowAsHeader를 모두 지정하면 먼저 줄을 건너뛰고 입력 파일에서 헤더 정보를 읽습니다. |
아니요 |
compressionProperties | 지정된 압축 코덱에 대한 데이터의 압축을 푸는 방법에 대한 속성 그룹입니다. | 아니요 |
preserveZipFileNameAsFolder ( compressionProperties ->type 아래 ZipDeflateReadSettings 으로) |
ZipDeflate 압축을 사용하여 입력 데이터 세트를 구성할 때 적용됩니다. 원본 zip 파일 이름을 복사 중에 폴더 구조로 유지할지 여부를 나타냅니다. - true(기본값)로 설정하면 서비스에서 압축을 푼 파일을 <path specified in dataset>/<folder named as source zip file>/ 씁니다.- false로 설정하면 서비스에서 압축을 푼 파일을 직접 <path specified in dataset> 씁니다. 경주 또는 예기치 않은 동작을 방지하기 위해 다른 원본 zip 파일에 중복된 파일 이름이 없는지 확인합니다. |
아니요 |
preserveCompressionFileNameAsFolder ( compressionProperties ->type 아래 TarGZipReadSettings 또는 TarReadSettings 으로) |
입력 데이터 세트가 TarGzip/Tar 압축을 사용하여 구성될 때 적용됩니다. 원본 압축 파일 이름을 복사 중에 폴더 구조로 유지할지 여부를 나타냅니다. - true(기본값)로 설정하면 서비스에서 압축을 풉니다. <path specified in dataset>/<folder named as source compressed file>/ - false로 설정하면 서비스에서 압축 해제된 파일을 직접 <path specified in dataset> 씁니다. 경주 또는 예기치 않은 동작을 방지하기 위해 다른 소스 파일에 중복된 파일 이름이 없는지 확인합니다. |
아니요 |
"activities": [
{
"name": "CopyFromDelimitedText",
"type": "Copy",
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
},
"formatSettings": {
"type": "DelimitedTextReadSettings",
"skipLineCount": 3,
"compressionProperties": {
"type": "ZipDeflateReadSettings",
"preserveZipFileNameAsFolder": false
}
}
},
...
}
...
}
]
싱크로서의 구분된 텍스트
복사 작업 *sink* 섹션에서 지원되는 속성은 다음과 같습니다.
속성 | 설명 | 필수 |
---|---|---|
type | 복사 작업 원본의 type 속성을 DelimitedTextSink로 설정해야 합니다. | 예 |
형식설정 | 속성 그룹입니다. 아래 구분된 텍스트 쓰기 설정 표를 참조하세요. | 아니요 |
storeSettings | 데이터 저장소에 데이터를 쓰는 방법에 대한 속성 그룹입니다. 각 파일 기반 커넥터에는 자체 지원되는 쓰기 설정이 있습니다 storeSettings . |
아니요 |
다음에서 구분된 텍스트 쓰기 설정을 지원합니다formatSettings
.
속성 | 설명 | 필수 |
---|---|---|
type | 형식설정 형식은 DelimitedTextWrite설정 설정해야 합니다. | 예 |
fileExtension | 출력 파일의 이름을 지정하는 데 사용되는 파일 확장명(예: .csv . .txt 출력 DelimitedText 데이터 세트에 fileName 이 지정되지 않은 경우 이 속성을 반드시 지정해야 합니다. 출력 데이터 세트에서 파일 이름을 구성하면 싱크 파일 이름으로 사용되며 파일 확장명 설정은 무시됩니다. |
출력 데이터 세트에 파일 이름을 지정하지 않은 경우 예 |
maxRowsPerFile | 폴더에 데이터를 쓸 때 여러 파일에 쓰고 파일당 최대 행을 지정하도록 선택할 수 있습니다. | 아니요 |
fileNamePrefix | 구성된 경우 maxRowsPerFile 적용됩니다.여러 파일에 데이터를 쓸 때 파일 이름 접두사를 지정합니다. 이 패턴은 <fileNamePrefix>_00000.<fileExtension> 입니다. 지정하지 않으면 파일 이름 접두사는 자동으로 생성됩니다. 원본이 파일 기반 저장소 또는 파티션 옵션 사용 데이터 저장소인 경우에는 이 속성이 적용되지 않습니다. |
아니요 |
매핑 데이터 흐름 속성
매핑 데이터 흐름에서는 Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 및 SFTP와 같은 데이터 저장소에서 구분 기호로 분리된 텍스트 형식을 읽고 쓸 수 있으며 Amazon S3에서 구분 기호로 분리된 텍스트 형식을 읽을 수 있습니다.
인라인 데이터 세트
매핑 데이터 흐름은 원본 및 싱크를 정의하기 위한 옵션으로 "인라인 데이터 세트"를 지원합니다. 인라인으로 구분된 데이터 세트는 원본 및 싱크 변환 내에서 직접 정의되며 정의된 데이터 흐름 외부에서 공유되지 않습니다. 데이터 흐름 내에서 직접 데이터 세트 속성을 매개 변수화하는 데 유용하며 공유 ADF 데이터 세트의 성능 향상을 활용할 수 있습니다.
많은 수의 원본 폴더와 파일을 읽을 때 프로젝션 | 내에서 "사용자 프로젝션된 스키마" 옵션을 설정하여 데이터 흐름 파일 검색의 성능을 향상시킬 수 있습니다. 스키마 옵션 대화 상자. 이 옵션은 ADF의 기본 스키마 자동 검색을 해제하고 파일 검색의 성능을 크게 향상시킵니다. 이 옵션을 설정하기 전에 ADF에 프로젝션에 대한 기존 스키마가 있도록 프로젝션을 가져와야 합니다. 이 옵션은 스키마 드리프트에서 작동하지 않습니다.
원본 속성
아래 표에서는 구분된 텍스트 원본에서 지원하는 속성을 나열합니다. 이러한 속성은 원본 옵션 탭에서 편집할 수 있습니다.
이름 | 설명 | 필수 | 허용된 값 | 데이터 흐름 스크립트 속성 |
---|---|---|---|---|
와일드 카드 경로 | 와일드 카드 경로와 일치하는 모든 파일이 처리됩니다. 데이터 세트에 설정된 폴더 및 파일 경로를 재정의합니다. | 아니요 | String[] | wild카드Paths |
파티션 루트 경로 | 분할된 파일 데이터의 경우 분할된 폴더를 열로 읽기 위해 파티션 루트 경로를 입력할 수 있습니다. | 아니요 | 문자열 | partitionRootPath |
파일 목록 | 원본이 처리할 파일을 나열하는 텍스트 파일을 가리키는지 여부 | 아니요 | true 또는 false |
fileList |
여러 줄 행 | 원본 파일에 여러 줄에 걸쳐 있는 행이 포함되어 있는지를 나타냅니다. 여러 줄 값은 따옴표로 되어 있어야 합니다. | 아니요 true 또는 false |
multiLineRow | |
파일 이름을 저장할 열 | 원본 파일 이름 및 경로를 사용하여 새 열을 만듭니다. | 아니요 | 문자열 | rowUrlColumn |
완료 후 | 처리 후 파일을 삭제하거나 이동합니다. 컨테이너 루트에서 파일 경로 시작 | 아니요 | 삭제: true 또는 false 이동: ['<from>', '<to>'] |
purgeFiles moveFiles |
마지막으로 수정한 시간으로 필터링 | 마지막으로 변경된 시기에 따라 파일을 필터링하도록 선택 | 아니요 | 타임스탬프 | modifiedAfter modifiedBefore |
파일을 찾을 수 없음 허용 | true이면 파일이 없으면 오류가 throw되지 않습니다. | 아니요 | true 또는 false |
ignoreNoFilesFound |
최대 열 | 기본값은 20480입니다. 열 번호가 20480을 초과할 때 이 값을 사용자 지정합니다. | 아니요 | 정수 | maxColumns |
참고 항목
파일 목록에 대한 데이터 흐름 원본 지원은 파일의 1024개 항목으로 제한됩니다. 더 많은 파일을 포함하려면 파일 목록에 야생 카드 사용합니다.
원본 예
아래 이미지는 매핑 데이터 흐름에서 구분된 텍스트 원본 구성의 예입니다.
연결된 데이터 흐름 스크립트는 다음과 같습니다.
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
multiLineRow: true,
wildcardPaths:['*.csv']) ~> CSVSource
참고 항목
데이터 흐름 원본은 Hadoop 파일 시스템에서 지원하는 제한된 Linux globbing 집합을 지원합니다.
싱크 속성
아래 표에서는 구분된 텍스트 싱크에서 지원하는 속성을 나열합니다. 설정 탭에서 이러한 속성을 편집할 수 있습니다.
이름 | 설명 | 필수 | 허용된 값 | 데이터 흐름 스크립트 속성 |
---|---|---|---|---|
폴더 지우기 | 쓰기 전에 대상 폴더를 지운 경우 | 아니요 | true 또는 false |
truncate |
파일 이름 옵션 | 기록된 데이터의 명명 형식입니다. 기본적으로 파티션당 하나의 파일 형식 part-#####-tid-<guid> |
아니요 | 패턴: 문자열 파티션당: String[] 열 데이터로 파일 이름 지정: 문자열 단일 파일로 출력: ['<fileName>'] 폴더를 열 데이터로 이름 지정: String |
filePattern partitionFileNames rowUrlColumn partitionFileNames rowFolderUrlColumn |
모두 따옴표로 묶기 | 모든 값을 따옴표로 묶습니다. | 아니요 | true 또는 false |
quoteAll |
헤더 | 출력 파일에 고객 헤더 추가 | 아니요 | [<string array>] |
헤더 |
싱크 예
아래 이미지는 매핑 데이터 흐름에서 구분된 텍스트 싱크 구성의 예입니다.
연결된 데이터 흐름 스크립트는 다음과 같습니다.
CSVSource sink(allowSchemaDrift: true,
validateSchema: false,
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CSVSink
관련 커넥터 및 형식
다음은 구분된 텍스트 형식과 관련된 몇 가지 일반적인 커넥터 및 형식입니다.
- Azure Blob Storage(connector-azure-blob-storage.md)
- 이진 형식(format-binary.md)
- Dataverse(connector-dynamics-crm-office-365.md)
- 데이터 형식(format-delta.md)
- Excel 형식(format-excel.md)
- 파일 시스템(connector-file-system.md)
- FTP(connector-ftp.md)
- HTTP(connector-http.md)
- JSON 형식(format-json.md)
- Parquet 형식(format-parquet.md)