지원되지 않는데 MariaDB ColumnStore에서 순환 조인을 수행할 수 있는 방법이 있습니까?
MariaDB ColumnStore를 사용하고 있으며 ColumnStore에서는 Circular 조인이 지원되지 않습니다.
데이터베이스에는 여러 국가와 고객으로부터 전송된 측정에 관한 데이터가 있습니다.
따라서 다양한 역할을 수행하려면 뷰 내부의 데이터를 필터링할 수 있어야 합니다.
이것이 제가 지금 가지고 있는 구조입니다.
TABLE Measurements:
Country Customer Measurement
a 1 150
a 2 200
b 3 250
사용자를 역할에 매핑하는 테이블이 있습니다.
TABLE UsersToRoles:
Users Roles
x role1
y role2
볼 수 있는 데이터에 역할을 매핑하는 테이블이 있습니다.
TABLE RolesToData
Roles VariableType VariableValue
role1 Country a
role1 Customer 1
role1 Customer 2
role2 Country b
role2 Customer 3
다음 역할 보기를 만들었습니다.
CREATE VIEW RoleView AS (
SELECT UsersToRoles.User, Country, Customer FROM UsersToRoles.users AS User,
Country.VariableValue AS 'Country' FROM
((UsersToRoles JOIN RolesToData Country ON (UsersToRoles.Roles =
Country.Roles AND Country.VariableType = 'Country'))
JOIN RolesToData Customer ON (UsersToRoles.Roles = Customer.Roles AND
Customer.VariableType = 'Customer')))
다음 VIEW를 반환합니다.
User Country Customer
x a 1
x a 2
y b 3
그런 다음 국가 및 고객 모두에 대한 역할 보기를 통해 측정 테이블에 참여하고 싶습니다.
CREATE VIEW FinalView AS (SELECT measurement.* FROM measurement JOIN RoleView ON
(measurement.country = RoleView.country AND measurement.customer = RoleView.customer))
문제는 MariaDB ColumnStore가 순환 조인을 지원하지 않는다는 것입니다.
원형 접합을 하지 않고 원형 접합을 달성할 수 있는 작업이 있습니까?
여러 보기를 만들고 각 보기에 대해 왼쪽 또는 오른쪽 조인을 수행하는 것을 통해 가능합니까?
이에 대한 해결책을 찾는다면 정말 감사할 것입니다.
편집: 업데이트
저는 빠른 해결책을 찾았지만, 이것이 심각한 영향을 미칠지는 모르겠습니다.
조인 조건 중 하나에서 CONCAT를 사용하면 작동합니다.
CREATE VIEW FinalView AS (SELECT measurement.* FROM measurement JOIN
RoleView ON
(measurement.country = CONCAT(RoleView.country,"") AND measurement.customer =
RoleView.customer))
이 스레드에서 Andrew의 코멘트를 기반으로 합니다.
https://jira.mariadb.org/browse/MCOL-1205
정확하게 설명했듯이 간단한 해결 방법은 원형 조인 조건을 이 함수의 인수에 효과적으로 아무런 영향을 미치지 않는 기능적 조건으로 바꾸는 것입니다.
언급URL : https://stackoverflow.com/questions/56932762/is-there-a-way-to-achieve-circular-joins-in-mariadb-columnstore-since-it-is-not
'programing' 카테고리의 다른 글
유형 스크립트 오류 유형이 중복되지 않으므로 이 조건은 항상 'true'를 반환합니다. (0) | 2023.08.14 |
---|---|
Spring 컨트롤러의 Junit 테스트에 대한 ApplicationContext를 로드하지 못했습니다. (0) | 2023.08.14 |
Junit 5(스프링 부트 포함):@ExtendWithSpring 또는 Mockito를 언제 사용해야 합니까? (0) | 2023.08.14 |
Powershell에서 IIS 앱에 대한 인증 사용 (0) | 2023.08.14 |
프로필이 활성화되지 않은 경우 빈 정의 포함 (0) | 2023.08.14 |