Microsoft Fabric의 그래프는 특정 기능적 및 성능 제한이 있습니다. 이 문서에서는 몇 가지 주요 제한 사항을 강조 표시하지만 전체 목록은 아닙니다. 업데이트를 정기적으로 다시 확인합니다.
일반적인 문제에 대한 도움말은 문제 해결 그래프를 참조하세요.
그래프 모델 만들기
데이터 원본
- OneLake parquet 및 CSV 파일은 현재 지원되는 유일한 데이터 원본입니다.
- 데이터 원본으로 Power BI 의미 체계 모델에 대한 지원이 개발 중입니다.
- 열 및 행 수준 OneLake 보안 에 대한 지원이 개발 중입니다.
데이터 형식
그래프는 현재 다음 데이터 형식을 지원합니다.
- 부울(값은 다음과 같습니다.
truefalse) - Double(값은 64비트 부동 소수점 숫자)
- 정수(값은 64비트 부호 있는 정수)
- 문자열(값은 유니코드 문자열)
- 존 지정 날짜 시간(타임스탬프와 시간대별 시간 이동 값)
- 기간(값은 ISO 8601 기간 간격)
지원되는 OneLake 형식은 다음과 같습니다.
- 정수형
- 롱타입
- 문자열 유형
- 더블타입
- 불리언 타입
- 플로트 타입
- ByteType
- ArrayType
- 날짜타입
- TimestampNtzType
- 타임스탬프 유형
Edge 만들기
그래프 모델링 중에 다른 그래프 에지 형식의 이름을 지정합니다.
예를 들어 소셜 미디어 데이터 세트는 "사용자가 댓글을 좋아한다", "사용자가 게시물을 좋아한다"를 나타낼 수 있습니다. 그래프 모델이 메모 및 게시물에 별도의 노드 형식을 사용하는 경우 사용자 노드 형식에는 주석 과 게시에 사용할 두 가지 유형의 "좋아요" 가장자리가 있습니다. 이러한 에지 의 이름을 userLikesComment 및 userLikesPost로 지정할 수 있습니다.
그래프 생성 시간
그래프를 만들거나 업데이트하는 데 20분 이상 걸리는 경우 일주일에 한 번까지 그래프 모델에 시간 제한이 발생할 수 있습니다. 작업이 실패한 것으로 표시됩니다.
그러나 사용자는 그래프 생성 또는 업데이트를 다시 완화할 수 있습니다.
그래프 크기
현재 일반적으로 제공되는 SKU 구성은 약 20억 개의 그래프 요소(노드와 엣지)를 처리할 수 있습니다. 더 많은 요소 수나 요소당 더 큰 속성 페이로드를 가진 더 큰 그래프의 경우, 제품 팀에 문의해 주세요.
그래프 모델 총 수
각 Fabric 작업 공간은 최대 10개의 그래프 모델을 가질 수 있습니다.
멀티태스킹 UI
Fabric 멀티태스킹 UI에서 탭 또는 창 사이를 전환할 때 그래프 모델이 사라지거나 비어 있을 수 있습니다. 제품 팀은 이 알려진 문제를 해결하기 위해 적극적으로 노력하고 있습니다.
노드 속성 선택
그래프 모델에 노드나 엣지 타입을 추가할 때, 소스 테이블에서 속성으로 추가할 열을 수동으로 선택하세요. 노드와 엣지 모두 속성이 없고, 필요한 속성만 추가합니다.
질의하기
멀티홉 쿼리의 홉 수
그래프는 현재 가변 길이 패턴에서 최대 8개의 홉을 지원합니다.
결과 크기
결과 크기가 128MB를 초과하면 집계 성능이 불안정할 수 있습니다.
시스템은 현재 64MB보다 큰 응답을 자립니다.
일시 중지
쿼리 시간이 20분 이상 걸리는 경우 시간이 초과됩니다.
데이터 내보내기 및 시각화
- 그래프 쿼리 결과 또는 그래프 구조 내보내는 것은 현재 지원되지 않습니다.
- 시각화 시나리오를 위해 그래프에 직접 Power BI 연결하는 것은 현재 지원되지 않습니다.
GQL 규칙
최소 규칙, 그룹별 선택적 기능 및 아직 지원되지 않는 기능을 포함하여 ISO/IEC 39075:2024 표준에 대해 지원되는 GQL 기능에 대한 자세한 매핑은 GQL 표준 규격을 참조하세요.
GQL 표준 준수는 다음을 위해 계속 진행 중입니다.
- 올바른 GQL 상태 코드
- 인덱스가 있는 FOR 문
- 다음
- UNION DISTINCT 문
- 바인딩되지 않은 그래프 패턴 수량자
- 모든 SHORTEST 경로 검색
- ANY 경로 검색
- ANY SHORTEST 경로 검색
- 데이터 변환
- 스칼라 하위 쿼리
- PROPERTIES 함수
- RANGE 함수
- 향상된 숫자 함수
- 로그 함수
- 삼각 함수
- 경로 값 연결
- 레이블 테스트 조건자
- 정규화된 조건자
- 원본/대상 조건자
- INT32 값 형식
- FLOAT32 값 형식
- CLOSED RECORD 값 형식
- UINT32 값 형식
- ZONED TIME 값 형식
- DATE 값 형식
- 매개 변수 전달
- 원치 않는 가장자리
- GQL 프리앰블
- 비로컬 패턴 조건자
- IS DIRECTED 조건자
- REGEXP_CONTAINS 조건자
- 동적 매개 변수 사양
- 세션 사용자
- BYTES 값 형식
- DECIMAL 값 형식
- LOCAL DATETIME 값 형식
- LOCAL TIME 값 형식
- CALL 명명된 프로시저 문
- 명시적 NULL 순서를 사용하는 ORDER BY
- 테이블 형식 FOR 문
- EXCEPT ALL 문
- EXCEPT DISTINCT 문
- INTERSECT ALL 문
- INTERSECT DISTINCT 문
- OTHERWISE 문
- 와일드카드
- 완화된 토폴로지 일관성
- PERCENTILE_CONT 집계 함수
- PERCENTILE_DISC 집계 함수
- PRODUCT 집계 함수
- STDDEV_POP 집계 함수
- STDDEV_SAMP 집계 함수
- 바이트 문자열 연결
- 바이트 문자열 TRIM 함수
- TRIM 사양을 사용하여 간단한 TRIM 함수
- Multicharacter TRIM 함수
- 바이트 문자열 길이 함수
- 카디널리티
- ALL_DIFFERENT 조건자
- IS DISTINCT 조건자
- 동일한 조건자
카탈로그
메모
그래프 이름과 제약 조건 이름은 UI나 JSON 스키마에서 GraphBackend 자동으로 생성되며 지정할 수 없습니다.
| 카탈로그 구역 | 전류 한계 / 동작 | 적용 상태 | 권장 사항 |
|---|---|---|---|
| 카탈로그 ID 기준 | 카탈로그 요소 ID는 0이 유효하지 않은 int32 래퍼로 서명되어 있어, 각 ID 계열은 최대 std::numeric_limits<int32_t>::max() - 1 양의 0이 아닌 ID를 가집니다(20억 개). |
도입 상한선, 권장 GA 할당량이 아닙니다 | |
| 그래프 스키마 | 카탈로그당 하나의 그래프 유형; 카탈로그 ID 주석은 카탈로그가 하나의 그래프 유형만 포함한다고 가정합니다. | 설계 가정; 멀티스키마 할당량으로 노출되지 않음 | |
| 그래프 정의 직렬화 크기 | 명시적인 바이트 크기 제한 GraphProto은 없습니다; 이 카드는 반복되는 노드 유형, 엣지 유형, 라벨, 속성 이름, 제약 조건을 포함합니다. |
protobuf/gRPC/메모리 아래에서는 강제되지 않습니다; 그래프 생성 후 카탈로그 객체 수 검사가 적용됩니다 | |
| 그래프 이름 | 비어 있지 않아야 합니다; 명시적인 최대 바이트 길이나 허용 문자 목록은 없습니다. | 비어 있지 않은 경우만 강제됩니다 | 128자 |
| 노드 유형 | 최대 20억 개의 노드 유형. | 양의 0이 아닌 int32 ID 공간을 통해 강 CatalogGraphType::Validate 제됨 |
64k |
| 엣지 유형 | 최대 20억 가지 엣지 타입. | 양의 0이 아닌 int32 ID 공간을 통해 강 CatalogGraphType::Validate 제됨 |
64k |
| 모든 노드 유형에 걸친 고유한 노드 라벨 | 최대 20억 개의 고유 노드 라벨. | 강제됨; CatalogGraphType::Validate한 유형 내의 중복 라벨은 거부된다 |
파생 |
| 모든 엣지 유형에 걸친 고유한 엣지 라벨 | 최대 20억 개의 고유 엣지 라벨. | 강제됨; CatalogGraphType::Validate한 유형 내의 중복 라벨은 거부된다 |
파생 |
| 모든 노드 및 엣지 유형에서 고유한 속성 이름 | 최대 20억 개의 고유 부동산 이름. | 강제로 CatalogGraphType::Validate; 속성 이름은 비어 있을 수 없으며, 한 유형 내에서의 중복은 거부됩니다 |
64k * 10 |
| 노드 제약 정의 | 최대 20억 노드 키 제약 조건 정의. | 양의 0이 아닌 int32 ID 공간을 통해 강 CatalogGraphType::Validate 제됨 |
<= 노드 유형 |
| 엣지 제약 조건 정의 | 최대 20억 개의 엣지 키 제약 조건 정의가 있지만, 에지 키 제약은 기본적으로 allow_edge_key_constraints 비활성화되어 있습니다. |
출석 시 집행; 특징 게이트는 기본적으로 엣지 제약 조건을 거부합니다 | <= 간선 유형 |
| 부동산 이름 문자 / 길이 | 비어 있지 않은 속성 이름과 파서 문법 외에는 명시적으로 강제되지 않습니다; 카탈로그 최대 바이트 길이나 문자 허용 목록은 없습니다. | 128 캐릭터 | |
| 라벨 문자 / 길이 | 파서 문법과 제약 조건 내 비어 있지 않은 라벨 외에는 명시적으로 강제되지 않습니다; 카탈로그 최대 바이트 길이나 문자 허용 목록은 없습니다. | 128 캐릭터 | |
| 제약 조건 이름 문자 / 길이 | 제약 조건 이름은 비어 있지 않아야 하며; 명시적인 최대 바이트 길이나 허용 문자 목록은 없습니다. | 중복/매칭 제약 검증은 별개입니다 | 128 캐릭터 |
| 노드 유형별 속성 | 노드 타입에 명시적인 최대 속성 수는 없으며; 중복된 부동산 이름은 거부됩니다. | 정확성 검증만 가능합니다 | 256 |
| 엣지 타입별 속성 | 엣지 타입에 명시적으로 최대 속성 수가 없으며; 중복된 부동산 이름은 거부됩니다. | 정확성 검증만 가능합니다 | 256 |
| 노드 유형별 라벨 | 노드 유형에 명시적인 최대 라벨 수가 없으며; 중복 라벨은 거부됩니다. | 정확성 검증만 가능합니다 | 64 |
| 간선 유형별 라벨 | 엣지 타입에 명시적으로 최대 레이블 수가 없으며; 중복된 라벨은 거부되며; 엣지 추가된 라벨은 거부됩니다. | 정확성 검증만 가능합니다 | 64 |
| 제약 조건별 주요 속성 | 노드 또는 엣지 키 제약 조건에서 명시적인 최대 키 속성 수는 없으며; 개별 부동산 이름은 비어 있을 수 없습니다. | 정확성 검증만 가능합니다 | 16 |
런타임 값
| 런타임 값 유형 | 백킹 표현 / 범위 | 명시적 가치 수준 제한? | 권장 |
|---|---|---|---|
| BOOL | 불; 참/거짓 값 | 네, 고정 도메인입니다 | |
| INT64 | 부호가 있는 64비트 정수 | 네, 고정 폭입니다 | |
| UINT64 | 부호 없는 64비트 정수 | 네, 고정 폭입니다 | |
| DOUBLE | C++/protobuf double / Arrow DoubleScalar (IEEE-754 binary64); 비유한 값은 거부되지 않습니다 Value::FromProto |
유한 검증은 없습니다 | |
| DECIMAL128 | 화살표 Decimal128Scalar; 실행 시간 검증은 정밀도 1..38과 스케일 0..정밀도를 허용하며; 최대 38자리 소수점까지 가능합니다 |
네, 체크된 구성/프로토에서 가능합니다 | |
| STRING |
std::string: ValueProto.string_value |
무가치 제한 | 4MB |
| BYTES |
std::string 바이트 컨테이너로 사용; ValueProto.bytes_value |
무가치 제한 | 스트링 리밋 |
| VERTEX_ID | uint64는 랩 처리 VertexId되어 생성된 ID는 48비트 샤드 로컬 ID를 사용하며 0을 유효하지 않음으로 예약합니다 |
Raw Proto는 어떤 uint64도 받아들입니다; 생성된 ID는 제약이 있습니다 | |
| EDGE_ID | uint64는 랩 처리 EdgeId되어 생성된 ID는 48비트 샤드 로컬 ID를 사용하며 0을 유효하지 않음으로 예약합니다 |
Raw Proto는 어떤 uint64도 받아들입니다; 생성된 ID는 제약이 있습니다 | |
| ZONED_DATE_TIME |
absl::Time 플러스 타임스존; Unix 에포크부터 int64밀리초로 직렬화되었으며, int32 UTC 오프셋 초를 더했습니다. 밀리초 범위는 [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]이며, -29227505-05-16T16:47:04.192+00:00에서 292278994-08-17T07:12:55.807+00:00까지의 UTC 순간으로 문서화됩니다. |
시간 범위 기록; 오프셋은 int32이며 범위 검사를 받지 않습니다 Value::FromProto |
|
| 기간 |
absl::Duration; int64 밀리초로 시리얼링되었습니다. 일련번호 최소/최대 시간은 -9,223,372,036,854,775,808 ms에서 9,223,372,036,854,775,807 ms(약 +/-292,277,024.6 년)입니다. ISO 파서는 더 엄격합니다: +/-9,223,372,035초(약 +/-292.277년). |
프로토 경로는 int64 밀리초 필드를 모두 수용합니다; 파서는 명시적 제한이 더 좁습니다 | |
| NULL / 타입 null |
std::monostate 또는 타입 null 래퍼 |
||
| 타이핑된 리스트 |
std::vector<std::optional<T>>; LIST_NULL 저장 수단 a size_t; LIST_ANY 상점 std::vector<Value> |
기본 가치 상한선 없음 | |
| 중첩된 목록 | 일반적인 중첩 리스트는 프로토 계약서에서 지원되지 않습니다; 런타임은 특별한 중첩 LIST_INT64 처리를 가집니다 |
기본 깊이/길이 할당량은 없습니다 | |
| 경로 | 벡터 내에서 정점/간선/정점 uint64 ID를 번갈아 사용; 유효한 경로 형태는 홀수 요소 수를 가집니다. | 경로 길이 할당량이 없음 | |
| 레코드 |
absl::flat_hash_map<std::string, Value> / 프로토부프 지도 |
필드 수, 키 길이, 중첩 깊이 할당량이 없습니다 | |
| ANY |
Value::DataType() 반환될 TYPE_ANY것으로 기대되지 않습니다; 동적 값은 특히 Arrow 내부 LIST_ANY 에서 구체적 값으로 전달됩니다. 확장 저장소 |
크기나 깊이 할당량은 없습니다 |
기타 제한
- 식별자는 밑줄로 시작할 수 없습니다.
- 정수 리터럴은 기본적으로 부호 있는 정수로 취급됩니다.
- ANY 및 레코드 유형 반품은 지원되지 않습니다. 임시 해결책은 .json
TO_JSON_STRING화하는 것입니다. - 최대 문자열 속성 길이는 65535입니다. 64 KiB 이상의 데이터는 디직렬라이저에 접근할 수 없으며; 전체 버퍼는 여전히 RocksDB에 기록되어 있습니다.
- 속성 내
List<T>최대 요소 수는 65535입니다. 70,000 요소의 INT64 LIST는 4,464 요소로 직렬 해제됩니다. - 최대 쿼리 응답 크기(바이트 단위)는 64MB입니다.