Kotlin 1.6.20 출시 | The Kotlin Blog

마지막 업데이트: 2022년 5월 12일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

범위 바이너리 옵션 타입

실제 테이블을 만들기 전에 PostgreSQL의 자료형을 살펴 보도록한다.

먼저 pg에서 설명하는 데이터타입 표를 보자

몇가지 특이한 자료형을 살펴보겠다.

날짜/시간 데이터타입

설명보다 결과를 보는것이 이해가 쉽다. timestamp, date, time 타입의 결과이다.

(PostgreSQL 은 “::자료형” 과 같은 명시로 자료형을 지정할 수 있다.)

interval 타입은 year, month, day, hour, minute, second 등의 단위와 결합하여 날짜/시간 연산이 가능하다.

날짜연산은 쿼리시 단골로 사용하는 기능이므로, 익혀 두도록 하자.

문자형 데이터타입

여느 데이터베이스와 유사하다. char, varchar, text 등의 자료형을 사용하면 된다.

char, varchar는 문자의 크기를 미리 지정해주어야 한다. 고정길이는 char, 가변길이는 varchar 라는것은 기본적으로 알고 있으리라 생각한다. char(10) , varchar(10) 과 같이 사용한다.

허나 PG에서 char, varchar를 사용할 때는 주의할 점이 있다.

char(10) 에서의 "10"10 byte 가 아닌 10 length 이라는점이다. 즉, 10자리의 한글이 들어간다.

처음에는 매우 어색하나, 적응하고 나면 이보다 편리한 DB는 없다. 데이터 입력 프로그램을 만들 시 한글 2type를 전혀 Kotlin 1.6.20 출시 | The Kotlin Blog 고려하지 않고 length로만 오류검증을 하면 되니말이다.

숫자형 데이터타입

다양한 숫자형 데이터타입을 지원하나 실제 사용해 보면 int, numeric 을 벗어나 사용해본 적은 없는것 같다.

상황에 맞는 데이터타입을 선택하면 된다.

numeric 형식은 최대 자리수와 수수자리수를 지정하여 사용한다. 혀용 범위가 크고 계산을 정확히 수행하는 자료형이나 다른 타입에 비해 느리다고 한다.(체감X). 금액계산 시 주로 사용한다.

ex) numeric(10,2) = 99999999.99

시리얼 타입

smallserial, serial, bigserial 등의 타입이 있다.

이는 auto_increment 와 유사하게 동작한다.

아래와 같이 사용한다. serial 타입은 시퀀스 생성기에서 자동으로 시퀀스가 생성된다.

기타 특이한 타입

box, line, circle 등의 도형타입

신기한 마음에 테스트 해 본적은 있으나 활용해본 적은 없다.

(x1,y1,x2,y2) 등 도형을 완성할 수 있는 포지션데이터이다.

업무에 따라 효과적으로 사용하는 사람도있을지도.

byte, bytea :

바이너리 데이터를 저장한다. 이미지 스트림 혹은 파일을 저장 가능하다.

data가 저장되는 구조가 특이하다. 차후 포스팅에서 상세히 다루도록 하겠다.

XML, JSON

XML과 JSON은 특집 포스팅으로 한번 다뤄야 할 필요가 있다.

데이터구조체를 매우 효율적으로 보관하고. 구조체 내부의 데이터를 가공 조회할수 있는 방법론을 제공한다.

JSON 내부의 KEY:VALUE값을 조회해 올 수 있으며 KEY를 인덱스 설정하는것도 가능하다.

9버전부터 JSON을 허용했으나 9버전은 관련 함수를 제공하지 않아 TEXT로 저장하는것과 다를 바가 없었다. 10버전부터 JSON 관련 함수들을 사용할 수 있다.

Kotlin 1.6.20 출시

Jessie Cho

Kotlin 1.6.20이 공식 출시되었습니다. 향후 언어 기능의 테스트 버전을 제공하고, 계층 구조를 멀티플랫폼 프로젝트의 디폴트 값으로 설정하며, JVM, JS 및 Native 플랫폼의 성능을 개선합니다.

이 블로그 글에서는 다음 개선 사항에 대한 개요와 더불어 다른 점진적 변경 사항에 대한 전체 목록을 확인할 수 있습니다.

    이 구현되어, Kotlin/JVM에서 컨텍스트에 의존적인 선언 정의를 새롭게 지원. 으로 제네릭 Java 클래스 및 인터페이스의 상호 운용성 개선. 할 수 있게 되어 빌드 타임이 더욱 빨라짐. 을 통해 원활한 개발 경험 지원. . 로 이전보다 손쉽게 코드 공유.

업데이트 방법

IntelliJ IDEA 또는 Android Studio를 사용하는 경우, 새로운 Kotlin 릴리스가 출시되는 즉시 자동으로 업데이트할 수 Kotlin 1.6.20 출시 | The Kotlin Blog 있는 옵션이 제공됩니다.

주요 업데이트

Kotlin/JVM용 컨텍스트 리시버 프로토타입

Kotlin 1.6.20에서는 리시버 개수가 하나로 제한되지 않습니다. 더 많이 필요한 경우 선언에 컨텍스트 리시버를 추가하여 함수, 프로퍼티 및 클래스를 컨텍스트 의존적으로(혹은 컨텍스트 기반) 만들면 됩니다. 컨텍스트 기반 선언은 다음과 같습니다.

  • 모든 선언된 컨텍스트 리시버가 호출자의 범위에서 묵시적 리시버로 있어야 합니다.
  • 선언된 컨텍스트 리시버를 본문 범위에 묵시적인 리시버로 가져옵니다.

프로젝트에서 컨텍스트 리시버를 활성화하려면, -Xcontext-receivers 컴파일러 옵션을 사용하세요. 이 기능 및 구문의 자세한 설명은 KEEP에서 확인할 수 있습니다.

이번 구현은 프로토타입인 점에 유의하세요.

  • -Xcontext-receivers 가 활성화된 상태에서 컴파일러는 프로덕션 코드에서 사용할 수 없는 사전 릴리스 바이너리를 생성합니다.
  • 현재 IDE는 컨텍스트 리시버를 최소한의 수준으로 지원합니다.

확정적으로 null 가능하지 않은 타입

제네릭 Java 클래스 및 인터페이스를 확장할 때 상호 운용성을 개선하기 위해 Kotlin 1.6.20에서는 제네릭 타입 매개변수를 T & Any 가 사용되는 곳에서 확정적으로 null 가능하지 않은 타입으로 표시할 수 있습니다. 구문 형태는 교차 타입 표기에서 온 것이며 이제 & 의 왼쪽에 있는 null 가능 상한선과 오른쪽의 null 가능하지 않은 Any 를 가진 타입 매개변수로 제한됩니다.

기능을 활성화하려면 언어 버전을 1.7로 설정하세요.

KEEP에서 확정적으로 null 가능하지 않은 Kotlin 1.6.20 출시 | The Kotlin Blog 타입에 대해서 더 알아보세요.

현재 확정적으로 null 가능하지 않은 타입은 베타입니다. 거의 안정화가 되었지만 추후에 마이그레이션 과정이 필요할 수도 있습니다. 변경 사항을 최소화하기 위해 노력하겠습니다.

JVM IR 백엔드에서 하나의 모듈에 대한 병렬 컴파일 지원

Kotlin 1.6.20에서 하나의 모듈에 있는 모든 파일을 병렬로 컴파일하는 실험적인 기능인 JVM IR 백엔드 모드를 추가하였습니다. 병렬 컴파일은 총 컴파일 시간을 최대 15%까지 줄일 수 있습니다.

compiler option -Xbackend-threads 로 실험적 병렬 백엔드 모드를 활성화하세요. 이 옵션에 다음의 인수를 사용하세요.

  • N 은 사용하고 싶은 스레드의 수입니다. CPU 코어 수를 초과해서는 안됩니다. 초과하는 경우 컨텍스트가 스레드 간에 전환되어 효율적으로 병렬화되지 않습니다.
  • 0 으로 CPU 코어당 1개 스레드를 사용

Gradle은 작업을 병렬로 실행할 수 있지만, Gradle의 관점에서 프로젝트(혹은 프로젝트의 주요한 부분)가 하나의 큰 작업일 뿐일 때는 이러한 병렬화가 별로 도움되지 않습니다. 매우 큰 모놀리식 모듈이 있는 경우 병렬 컴파일을 사용하여 더 빠르게 컴파일하세요. 프로젝트가 다수의 작은 모듈로 구성되어 있으며 빌드가 Gradle로 병렬화되어 있는 경우 병렬화 레이어를 추가하면 컨텍스트 전환으로 인해 성능에 나쁜 영향을 줄 수 있습니다.

병렬 컴파일에는 일부 제약이 있습니다.

    는 IR 백엔드를 비활성화하기 때문에 kapt와는 사용할 수 없습니다.
  • 설계상 JVM 힙이 더 필요합니다. 필요한 heap의 양은 스레드 수에 비례합니다.

Kotlin/JS IR 컴파일러를 사용하는 개발 바이너리에서 증분 컴파일 지원

IR 컴파일러를 활용한 Kotlin/JS 개발을 더욱 효율화하기 위해 증분 컴파일 모드를 도입했습니다.

이 모드에서 compileDevelopmentExecutableKotlinJs Gradle 작업이 있는 개발 바이너리를 빌드할 때는 컴파일러가 모듈 수준에서 이전 컴파일의 결과를 캐시에 저장합니다. 이어지는 컴파일에서 변경 사항이 없는 소스 파일에 캐시된 컴파일 결과를 사용하므로, 특히 변경 사항이 적을 때 컴파일 완료 속도가 빨라집니다. 이 개선 사항은 개발 프로세스에만 적용되며(편집-빌드-디버그 사이클 단축) 프로덕션 아티팩트 빌드에는 영향을 주지 않습니다.

개발 바이너리의 증분 컴파일을 활성화하려면, 다음 줄을 프로젝트의 gradle.properties 에 추가하세요.

테스트 프로젝트에서 새로운 모드를 사용할 경우 증분 컴파일이 최대 30% 빨랐습니다. 그러나 이 모드에서 클린 빌드는 캐시를 생성하고 준비해야 하기 때문에 더 느렸습니다.

Kotlin/Native 성능 개선

Kotlin 1.6.20에는 Koltin이 생성하는 LLVM IR에 영향을 주는 성능 업데이트와 버그 수정이 일부 포함되었습니다. 저희가 내부 프로젝트에서 벤치마크를 실행한 결과에 따르면 평균 성능 향상은 다음과 같았습니다.

  • 실행 시간 15% 감소
  • 릴리스 및 디버그 바이너리의 코드 크기 20% 감소
  • 릴리스 바이너리의 컴파일 시간 26% 감소

이번 변경으로 대규모 내부 프로젝트에서 디버그 바이너리의 컴파일 시간도 10% 감소했습니다.

이러한 결과를 얻기 위해 컴파일러가 생성한 일부 통합 객체의 정적 초기화를 구현하고, 모든 함수에 대해 LLVM IR을 구조화하는 방법을 개선하였으며, 컴파일러 캐시를 최적화했습니다.

멀티 플랫폼 프로젝트에서 계층적 구조 지원

Kotlin 1.6.20에는 계층적 구조 지원이 기본적으로 활성화되어 있습니다. Kotlin 1.4.0에서 이 기능을 도입한 이후 프런트엔드를 크게 개선하였으며 IDE 가져오기를 안정화했습니다.

이전에 멀티플랫폼 프로젝트에서 코드를 추가하는 방법은 두 가지였습니다. 첫 번째는 특정 플랫폼용, 즉 하나의 대상 플랫폼 외에 다른 플랫폼에서는 사용할 수 없는 소스 세트에 코드를 추가하는 방법이었습니다. 두 번째는 Kotlin에서 현재 지원하는 모든 플랫폼에서 공유되는 공통 소스 세트를 사용하는 방법입니다.

이제는 공통 로직과 타사 API를 많이 재사용하는 여러 개의 유사한 네이티브 대상에서 소스 코드를 공유할 수 있습니다. 이 기술은 정확한 디폴트 종속성을 제공하며 공유된 코드에서 사용할 수 있는 정확한 API를 찾아줍니다. 이에 따라 복잡한 빌드 설정이 필요 없고, 여러 네이티브 대상에서 코드 세트를 공유할 수 있는 IDE 지원을 얻기 위해 해결책을 사용할 필요도 없어졌습니다. 또한, 다른 대상에 사용해야 할 API를 안전하지 않게 사용하는 경우도 방지할 수 있습니다.

이 기술은 라이브러리 작성자에게도 편리합니다. 계층적 프로젝트 구조가 지원되면 대상의 하위 세트에서 쓸 수 있는 공통 API로 라이브러리를 게시하고 사용할 수 있기 때문입니다.
기본적으로 계층적 프로젝트 구조로 게시된 라이브러리는 계층적 구조의 프로젝트와만 호환됩니다. 프로젝트 및 라이브러리 호환성에 대해 자세히 알아보세요.

개선된 프로젝트 내 코드 공유

계층적 구조가 지원되지 않으면 일부 Kotlin 대상 간에 코드를 공유할 수는 있어도 모든 대상 간에 쉽게 공유할 방법은 없습니다. 대표적인 예시는 모든 iOS 대상에서 코드를 공유하면서 Foundation 과 같은 iOS용 종속성에 액세스하는 것입니다.

이제 계층적 프로젝트 구조가 지원되므로 별도 설정 없이 이를 바로 실현할 수 있습니다. 새로운 구조에서 소스 세트는 계층 구조를 형성합니다. 소스 세트가 컴파일되는 각 대상에서 지원되는 플랫폼용 언어 기능과 종속성을 사용할 수 있습니다.

iOS 기기 및 시뮬레이터용으로 iosArm64 및 iosX64 라는 2개의 대상을 가진 일반적 멀티플랫폼 프로젝트를 예시로 들어 보겠습니다. Kotlin 도구는 두 대상 모두 같은 함수를 갖고 있다는 것을 인지하며 사용자가 중간 소스 세트인 iosMain 의 함수에 액세스할 수 있게 합니다.

Kotlin 툴체인은 Kotlin/Native stdlib 혹은 네이티브 라이브러리 같은 올바른 디폴트 종속성을 제공합니다. 또한 Kotlin 도구는 공유된 코드에서 이용할 수 있는 API 서피스 영역을 정확히 찾기 위해 노력합니다. 이는 Windows에 공유되는 코드에 macOS용 함수가 사용되는 것과 같은 사례를 방지합니다.

라이브러리 작성자에게 더 많은 기회

이제 멀티플랫폼 라이브러리가 게시되면, 중간 소스 세트의 API가 함께 적절히 게시되어 소비자들이 사용할 수 Kotlin 1.6.20 출시 | The Kotlin Blog 있게 됩니다. Kotlin 툴체인이 소비자 소스 세트에서 사용할 수 있는 API를 자동으로 파악하며, JS 코드에서 JVM용 API를 사용하는 것과 같은 안전하지 않은 사용을 감시합니다. 라이브러리에서 코드를 공유하는 방법에 대해 자세히 알아보세요.

구성 및 설정

Kotlin 1.6.20부터 모든 신규 멀티플랫폼 프로젝트는 계층적 프로젝트 구조를 갖게 됩니다. 추가적인 설정이 필요하지 않습니다.

일괄 수집 개발자 안내서

이 문서에서는 배치 수집 API 엔드포인트 Adobe Experience Platform. 사전 요구 사항 및 우수 사례를 포함한 배치 수집 API에 대한 개요를 알려면 다음을 읽어 보십시오. 배치 수집 API 개요.

이 문서의 부록에는 처리에 사용할 데이터 형식 지정: 샘플 CSV 및 JSON 데이터 파일 포함.

이 안내서에서 사용되는 API 엔드포인트는 데이터 수집 API. 데이터 수집은 지원되는 개체 유형에 대해 기본 CRUD 작업을 수행할 수 있는 RESTful API를 제공합니다.

JSON 파일 수집

다음 단계는 작은 파일(256MB 이하)에 적용할 수 있습니다. 게이트웨이 시간 초과나 요청 본문 크기 오류가 발생하면 큰 파일 업로드로 전환해야 Kotlin 1.6.20 출시 | The Kotlin Blog 합니다.

일괄 처리 만들기

먼저 JSON을 입력 형식으로 사용하여 일괄 처리를 만들어야 합니다. 일괄 처리를 만들 때 데이터 세트 ID를 제공해야 합니다. 또한 일괄 처리의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 따르는지 확인해야 합니다.

아래 예제는 단일 JSON입니다. 여러 줄 JSON을 수집하려면 isMultiLineJson 플래그를 설정해야 합니다. 자세한 내용은 배치 수집 문제 해결 가이드.

API 형식

요청

매개 변수 설명
참조 데이터 세트의 ID입니다.

응답

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.

파일 업로드

이제 일괄 처리를 생성했으므로 일괄 처리 생성 응답의 배치 ID를 사용하여 파일을 일괄 처리에 업로드할 수 있습니다. 여러 파일을 배치에 업로드할 수 있습니다.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.
업로드할 파일의 이름입니다. 이 파일 경로는 Adobe 측에 파일을 저장할 위치입니다.

요청

API는 단일 부분 업로드를 지원합니다. content-type 이 application/octet-stream인지 확인합니다.

매개 변수 설명
업로드하려는 파일의 전체 경로 및 이름입니다. 이 파일 경로는 다음과 같은 로컬 파일 경로입니다 Users/sample-user/Downloads/sample.json .

응답

일괄 처리 완료

파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었으며 일괄 처리가 프로모션될 준비가 되었음을 알리는 신호가 있어야 합니다.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.

요청

응답

Ingest Parquet 파일

다음 단계는 작은 파일(256MB 이하)에 적용할 수 있습니다. 게이트웨이 시간 초과나 요청 본문 크기 오류가 발생하면 큰 파일 업로드로 전환해야 합니다.

일괄 처리 만들기

먼저 일괄 처리를 생성한 후 Parquet을 입력 형식으로 입력해야 합니다. 일괄 처리를 만들 때 데이터 세트 ID를 제공해야 합니다. 또한 일괄 처리의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 따르는지 확인해야 합니다.

요청

매개 변수 설명
참조 데이터 세트의 ID입니다.

응답

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.
배치를 생성한 사용자의 ID입니다.

파일 업로드

배치를 생성했으므로 다음을 사용할 수 있습니다 batchId 파일을 배치에 업로드하기 전에서까지입니다. 여러 파일을 배치에 업로드할 수 있습니다.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.
업로드할 파일의 이름입니다. 이 파일 경로는 Adobe 측에 파일을 저장할 위치입니다.

요청

이 API는 단일 부분 업로드를 지원합니다. content-type 이 application/octet-stream인지 확인합니다.

매개 변수 설명
업로드하려는 파일의 전체 경로 및 이름입니다. 이 파일 경로는 다음과 같은 로컬 파일 경로입니다 Users/sample-user/Downloads/sample.json .

응답

일괄 처리 완료

파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었으며 일괄 처리가 프로모션될 준비가 되었음을 알리는 신호가 있어야 합니다.

API 형식

매개 변수 설명
신호할 배치의 ID가 완료될 준비가 되었습니다.

요청

응답

대형 Parquet 파일 수집

이 섹션에서는 256MB보다 큰 파일을 업로드하는 방법을 자세히 설명합니다. 큰 파일은 청크로 업로드된 다음 API 신호를 통해 결합됩니다.

일괄 처리 만들기

먼저 일괄 처리를 생성한 후 Parquet을 입력 형식으로 입력해야 합니다. 일괄 처리를 만들 때 데이터 세트 ID를 제공해야 합니다. 또한 일괄 처리의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 따르는지 확인해야 합니다.

API 형식

요청

매개 변수 설명
참조 데이터 세트의 ID입니다.

응답

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.
배치를 생성한 사용자의 ID입니다.

큰 파일 초기화

배치를 만든 후 일괄 처리를 업로드하기 전에 큰 파일을 초기화해야 합니다.

API 형식

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.
초기화하려는 파일의 이름입니다.

요청

응답

큰 파일 청크 업로드

파일이 만들어졌으므로 이제 파일의 각 섹션에 대해 하나씩 반복되는 PATCH 요청을 수행하여 후속 청크를 모두 업로드할 수 있습니다.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.
업로드할 파일의 이름입니다. 이 파일 경로는 Adobe 측에 파일을 저장할 위치입니다.

요청

이 API는 단일 부분 업로드를 지원합니다. content-type 이 application/octet-stream인지 확인합니다.

매개 변수 설명
정수로, 요청된 범위의 시작 및 끝.
업로드하려는 파일의 전체 경로 및 이름입니다. 이 파일 경로는 다음과 같은 로컬 파일 경로입니다 Users/sample-user/Downloads/sample.json .

응답

전체 대용량 파일

배치를 생성했으므로 다음을 사용할 수 있습니다 batchId 파일을 배치에 업로드하기 전에서까지입니다. 여러 파일을 배치에 업로드할 수 있습니다.

API 형식

매개 변수 설명
완료 신호를 보낼 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.
완료 신호를 보낼 파일의 이름입니다.

요청

응답

일괄 처리 완료

파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었으며 일괄 처리가 프로모션될 준비가 되었음을 알리는 신호가 있어야 합니다.

API 형식

매개 변수 설명
신호하려는 일괄 처리의 ID가 완료되었습니다.

요청

응답

CSV 파일 수집

CSV 파일을 수집하려면 CSV를 지원하는 클래스, 스키마 및 데이터 세트를 만들어야 합니다. 필요한 클래스 및 스키마를 만드는 방법에 대한 자세한 내용은 ad-hoc 스키마 만들기 튜토리얼.

다음 단계는 작은 파일(256MB 이하)에 적용할 수 있습니다. 게이트웨이 시간 초과나 요청 본문 크기 오류가 발생하면 큰 파일 업로드로 전환해야 합니다.

데이터 집합 만들기

위의 지침에 따라 필요한 클래스 및 스키마를 만든 후 CSV를 지원할 수 있는 데이터 세트를 만들어야 합니다.

API 형식

요청

매개 변수 설명
이 ID는 사용자가 만드는 리소스가 제대로 식별되고 IMS 조직 내에 포함되어 있는지 확인하는 데 사용됩니다.
생성한 스키마의 ID입니다.

일괄 처리 만들기

다음으로, CSV를 입력 형식으로 사용한 배치를 만들어야 합니다. 일괄 처리를 만들 때 데이터 세트 ID를 제공해야 합니다. 또한 일괄 처리의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 스키마를 따르는지 확인해야 합니다.

API 형식

요청

매개 변수 설명
참조 데이터 세트의 ID입니다.

응답

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.
배치를 생성한 사용자의 ID입니다.

파일 업로드

배치를 생성했으므로 다음을 사용할 수 있습니다 batchId 파일을 배치에 업로드하기 전에서까지입니다. 여러 파일을 배치에 업로드할 수 있습니다.

자세한 내용은 부록 섹션을 참조하십시오. 올바른 형식의 CSV 데이터 파일의 예.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.Kotlin 1.6.20 출시 | The Kotlin Blog
업로드할 파일의 이름입니다. 이 파일 경로는 Adobe 측에 파일을 저장할 위치입니다.

요청

이 API는 단일 부분 업로드를 지원합니다. content-type 이 application/octet-stream인지 확인합니다.

매개 변수 설명
업로드하려는 파일의 전체 경로 및 이름입니다. 이 파일 경로는 다음과 같은 로컬 파일 경로입니다 Users/sample-user/Downloads/sample.json .

응답

일괄 처리 완료

파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었으며 일괄 처리가 프로모션될 준비가 되었음을 알리는 신호가 있어야 합니다.

API 형식

요청

응답

배치 취소

일괄 처리가 처리되는 동안 여전히 취소할 수 있습니다. 그러나 배치가 완료되면(성공 또는 실패 상태 등) 배치를 취소할 수 없습니다.

API 형식

매개 변수 설명
취소할 배치의 ID입니다.

요청

응답

배치 삭제

다음과 같은 POST 요청을 수행하여 배치를 삭제할 수 있습니다 action=REVERT 삭제할 배치 ID에 대한 쿼리 매개 변수입니다. 일괄 처리가 "비활성"으로 표시되어 가비지 수집에 적합합니다. 일괄 처리가 비동기적으로 수집되며 이때 일괄 처리가 "삭제"로 표시됩니다.

API 형식

매개 변수 설명
삭제할 일괄 처리의 ID입니다.

요청

응답

일괄 처리

간혹 조직의 프로필 저장소에서 데이터를 업데이트해야 할 수 있습니다. 예를 들어 레코드를 수정하거나 속성 값을 변경해야 할 수 있습니다. Adobe Experience Platform은 업데이트 작업 또는 "일괄 처리"를 통해 프로필 저장소 데이터의 업데이트 또는 패치를 지원합니다.

이러한 업데이트는 경험 이벤트가 아니라 프로필 레코드에서만 허용됩니다.

배치를 패치하려면 다음 사항이 필요합니다.

  • 프로필 및 속성 업데이트에 대해 활성화된 데이터 세트입니다. 데이터 세트 태그를 통해 수행되며 특정 isUpsert:true 태그에 추가 unifiedProfile 배열입니다. 데이터 세트를 만들거나 업데이트할 기존 데이터 세트를 구성하는 방법을 보여주는 자세한 단계는 에 대한 자습서를 따르십시오 프로필 업데이트에 대한 데이터 세트 활성화.
  • 패치할 필드와 프로파일의 ID 필드가 포함된 Parquet 파일입니다. 일괄 처리를 패치하기 위한 데이터 형식은 일반 배치 수집 프로세스와 유사합니다. 필요한 입력은 Parquet 파일이며, 업데이트할 필드 외에 업로드된 데이터에는 ID 필드가 포함되어야 Profile Store의 데이터와 일치할 수 있습니다.

프로필 및 업데이트에 대해 데이터 세트를 활성화하고, 패치할 필드뿐만 아니라 필요한 ID 필드가 포함된 Parquet 파일이 있으면 다음 단계를 수행할 수 있습니다 Parquet 파일 수집 배치 수집을 통해 패치를 완료하기 위해.

배치 재생

이미 수집된 일괄 처리를 대체하려면 "일괄 재생"으로 할 수 있습니다. 이 작업은 이전 일괄 처리를 삭제하고 대신 새 일괄 처리를 수집하는 것과 같습니다.

일괄 처리 만들기

먼저 JSON을 입력 형식으로 사용하여 일괄 처리를 만들어야 합니다. 일괄 처리를 만들 때 데이터 세트 ID를 제공해야 합니다. 또한 일괄 처리의 일부로 업로드된 모든 파일이 제공된 데이터 세트에 연결된 XDM 스키마를 따르는지 확인해야 합니다. 또한 재생 섹션에서 Kotlin 1.6.20 출시 | The Kotlin Blog 참조할 수 있도록 이전 배치를 제공해야 합니다. 아래 예에서는 ID가 있는 배치를 다시 재생하고 있습니다 batchIdA 및 batchIdB .

API 형식

요청

매개 변수 설명
참조 데이터 세트의 ID입니다.

응답

매개 변수 설명
새로 생성된 배치의 ID입니다.
참조된 데이터 세트의 ID입니다.
배치를 생성한 사용자의 ID입니다.

파일 업로드

배치를 생성했으므로 다음을 사용할 수 있습니다 batchId 파일을 배치에 업로드하기 전에서까지입니다. 여러 파일을 배치에 업로드할 수 있습니다.

API 형식

매개 변수 설명
업로드할 일괄 처리의 ID입니다.
일괄 처리의 참조 데이터 세트에 대한 ID입니다.
업로드할 파일의 이름입니다. 이 파일 경로는 Adobe 측에 파일을 저장할 위치입니다.

요청

이 API는 단일 부분 업로드를 지원합니다. content-type 이 application/octet-stream인지 확인합니다. curl -F 옵션은 기본적으로 API와 호환되지 않는 다중 부분 요청으로 설정되므로 사용하지 마십시오.

매개 변수 설명
업로드하려는 파일의 전체 경로 및 이름입니다. 이 파일 경로는 다음과 같은 로컬 파일 경로입니다 Users/sample-user/Downloads/sample.json .

응답

일괄 처리 완료

파일의 여러 부분을 모두 업로드했으면 데이터가 완전히 업로드되었으며 일괄 처리가 프로모션될 준비가 되었음을 알리는 신호가 있어야 합니다.

API 형식

매개 변수 설명
완료하려는 일괄 처리의 ID입니다.

요청

응답

다음 섹션에는 배치 수집을 사용하여 Experience Platform에서 데이터를 수집하기 위한 추가 정보가 포함되어 있습니다.

일괄 처리를 위한 데이터 변환

데이터 파일을에 수집하려면 Experience Platform로 지정하는 경우 파일의 계층 구조는 XDM(경험 데이터 모델) 업로드 중인 데이터 세트와 연관된 스키마입니다.

XDM 스키마를 준수하도록 CSV 파일을 매핑하는 방법에 대한 자세한 내용은 샘플 변형 적절한 형식의 JSON 데이터 파일의 예와 함께 문서에 첨부합니다. 문서에 제공된 샘플 파일은 다음과 같습니다.

범위 바이너리 옵션 타입

데이터들엔 타입이 존재합니다. 학번 데이터라면 정수를, 이름 데이터라면 문자열을 저장하듯이 SQL에서도 타입이 존재합니다.

오늘 포스트에서는 여러 타입 중 숫자와 관련한 타입들을 알아보도록 하겠습니다.

모든 숫자 타입은 UNSIGNED 옵션을 사용할 수 있습니다. UNSIGNED 옵션을 사용하면 0과 양수만을 표현 하게 됩니다.

1. 정수

우선 가장 기본적인 숫자라고 할 수 있는 정수 타입에 대해 알아보겠습니다.

타입명 크기 값의 범위 값의 범위 (unsigned)
TINYINT 1 byte -(2^7) ~ 2^7 - 1 0 ~ 2^8 - 1
SMALLINT 2 byte -(2^15) ~ 2^15 0 ~ 2^16 - 1
MEDIUMINT 3 byte -(2^23) ~ 2^23 0 ~ 2^24 -1
INT 4 byte -(2^31) ~ 2^31 0 ~ 2^32 - 1
BIGINT 5 byte -(2^63) ~ 2^63 0 ~ 2^64 - 1

2. 고정 소수점과 부동 소수점

컴퓨터의 실수 표현에는 고정 소수점과 부동 소수점 방식이 존재합니다. 지금은 SQL을 다루기 때문에 깊게는 설명할 수 없지만, 고정 소수점은 정확한 데이터를 위해, 부동 소수점은 데이터 값의 표현을 위해서 사용됩니다.

고정 소수점 방식에는 DECIMAL 또는 NUMERIC 키워드를 사용합니다. 이 키워드는 크기 표현란에, 정밀도와 스케일을 넣습니다.

정밀도(precision)은 총 자릿수를 의미하고, 스케일(scale)은 소수점 자릿수를 의미합니다. 만약 DECIMAL(3, 1)과 같은 표현식이 온다면 해당 컬럼의 표현가능한 고정 소수점 수는 -99.9 ~ 99.9가 됩니다.

부동 소수점 방식에는 FLOAT와 DOUBLE이 사용됩니다. 부동 소수점에는 단정도 형식(single-precision)과 배정도 형식(double-precision)이 존재합니다. 부동 소수점 방식은 다음과 같이 사용하고, 표시한 정밀도에 따라서, FLOAT, DOUBLE이 자동 선택됩니다.

단정도 형식은 FLOAT 키워드가 선택됩니다. FLOAT는 0~23 사이의 정밀도를 가지며, 4 byte 크기를 갖습니다.

배정도 형식은 DOUBLE 키워드가 선택됩니다. DOUBLE은 0~53사이의 정밀도를 가지며, 8 byte 크기를 갖습니다.

3. 비트

비트는 0/1의 binary 값을 저장하는 타입입니다. 비트 타입에는 1 ~ 64 비트의 범위가 올 수 있으며, 생략시 기본값인 1이 적용됩니다.

비트는 지정된 비트수보다 적은 크기의 값이 들어가면 자동으로 앞을 0으로 채워줍니다. BIT(4)의 컬럼에 01이라는 값을 넣으면 자동으로 0001로 변환되어 저장됩니다.


0 개 댓글

답장을 남겨주세요