@finos/legend-application-data-cube 0.6.14 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/LegendDataCubeWebApplication.d.ts.map +1 -1
- package/lib/components/LegendDataCubeWebApplication.js +1 -0
- package/lib/components/LegendDataCubeWebApplication.js.map +1 -1
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.js +6 -14
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceBuilder.js +13 -4
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceBuilder.js.map +1 -1
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceLoader.d.ts.map +1 -1
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceLoader.js +3 -0
- package/lib/components/builder/source/LakehouseProducerDataCubeSourceLoader.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +3 -2
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +6 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +150 -71
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/lib/stores/LegendDataCubeDuckDBEngine.d.ts +4 -2
- package/lib/stores/LegendDataCubeDuckDBEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDuckDBEngine.js +52 -0
- package/lib/stores/LegendDataCubeDuckDBEngine.js.map +1 -1
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.d.ts +2 -8
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js +21 -54
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.d.ts +14 -1
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.js +73 -8
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceLoaderState.d.ts +6 -2
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceLoaderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceLoaderState.js +25 -5
- package/lib/stores/builder/source/LakehouseProducerDataCubeSourceLoaderState.js.map +1 -1
- package/lib/stores/model/LakehouseConsumerDataCubeSource.d.ts +2 -2
- package/lib/stores/model/LakehouseConsumerDataCubeSource.d.ts.map +1 -1
- package/lib/stores/model/LakehouseConsumerDataCubeSource.js.map +1 -1
- package/lib/stores/model/LakehouseProducerDataCubeSource.d.ts +13 -0
- package/lib/stores/model/LakehouseProducerDataCubeSource.d.ts.map +1 -1
- package/lib/stores/model/LakehouseProducerDataCubeSource.js +19 -2
- package/lib/stores/model/LakehouseProducerDataCubeSource.js.map +1 -1
- package/lib/stores/model/SecondaryOauthClient.d.ts +26 -0
- package/lib/stores/model/SecondaryOauthClient.d.ts.map +1 -0
- package/lib/stores/model/SecondaryOauthClient.js +48 -0
- package/lib/stores/model/SecondaryOauthClient.js.map +1 -0
- package/package.json +13 -12
- package/src/components/LegendDataCubeWebApplication.tsx +1 -0
- package/src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx +7 -32
- package/src/components/builder/source/LakehouseProducerDataCubeSourceBuilder.tsx +40 -14
- package/src/components/builder/source/LakehouseProducerDataCubeSourceLoader.tsx +4 -0
- package/src/stores/LegendDataCubeDataCubeEngine.ts +201 -80
- package/src/stores/LegendDataCubeDuckDBEngine.ts +73 -1
- package/src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts +31 -74
- package/src/stores/builder/source/LakehouseProducerDataCubeSourceBuilderState.ts +151 -10
- package/src/stores/builder/source/LakehouseProducerDataCubeSourceLoaderState.ts +56 -11
- package/src/stores/model/LakehouseConsumerDataCubeSource.ts +2 -2
- package/src/stores/model/LakehouseProducerDataCubeSource.ts +26 -1
- package/src/stores/model/SecondaryOauthClient.ts +56 -0
- package/tsconfig.json +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAgBH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AA0DlG,eAAO,MAAM,4BAA4B,WAC/B;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAClD;;CAwBF,CAAC"}
|
|
@@ -39,6 +39,7 @@ const AuthenticatedLegendDataCubeWebProvider = withAuthenticationRequired(Legend
|
|
|
39
39
|
OnRedirecting: () => (_jsx(CubesLoadingIndicator, { isLoading: true, children: _jsx(CubesLoadingIndicatorIcon, {}) })),
|
|
40
40
|
signinRedirectArgs: {
|
|
41
41
|
state: `${window.location.pathname}${window.location.search}`,
|
|
42
|
+
extraQueryParams: {},
|
|
42
43
|
},
|
|
43
44
|
});
|
|
44
45
|
export const LegendDataCubeWebApplication = observer((props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,0BAA0B,EAC1B,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,MAAM,kCAAkC,GAAG,QAAQ,CAAC,GAAG,EAAE;IACvD,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,KAAK;aACF,UAAU,EAAE;aACZ,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACpB,KAAK,CAAC,eAAe,CAAC,YAAY,IAAI,CACrC,KAAC,MAAM,cACL,KAAC,KAAK,IACJ,IAAI,EAAE,8BAA8B,CAAC,OAAO,EAC5C,OAAO,EAAE,KAAC,qBAAqB,KAAG,GAClC,GACK,CACV,GACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAE1B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACnB,OAAO,CACL,KAAC,0BAA0B,IAAC,OAAO,EAAE,OAAO,YAC1C,KAAC,+BAA+B,cAC9B,KAAC,kCAAkC,KAAG,GACN,GACP,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,sCAAsC,GAAG,0BAA0B,CACvE,yBAAyB,EACzB;IACE,aAAa,EAAE,GAAG,EAAE,CAAC,CACnB,KAAC,qBAAqB,IAAC,SAAS,EAAE,IAAI,YACpC,KAAC,yBAAyB,KAAG,GACP,CACzB;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,+EAA+E,CAAC;
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,+EAA+E,CAAC;AAGjJ,eAAO,MAAM,sCAAsC,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5D,aAAa,EAAE,2CAA2C,CAAC;CAC5D,CA4HC,CAAC"}
|
|
@@ -20,8 +20,10 @@ import { CustomSelectorInput } from '@finos/legend-art';
|
|
|
20
20
|
import { useAuth } from 'react-oidc-context';
|
|
21
21
|
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
22
22
|
import { useEffect } from 'react';
|
|
23
|
+
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
23
24
|
export const LakehouseConsumerDataCubeSourceBuilder = observer(({ sourceBuilder: state }) => {
|
|
24
25
|
const auth = useAuth();
|
|
26
|
+
const store = useLegendDataCubeBuilderStore();
|
|
25
27
|
useEffect(() => {
|
|
26
28
|
state.reset();
|
|
27
29
|
state.loadDataProducts();
|
|
@@ -33,25 +35,15 @@ export const LakehouseConsumerDataCubeSourceBuilder = observer(({ sourceBuilder:
|
|
|
33
35
|
})), disabled: state.dataProductLoadingState.isInProgress ||
|
|
34
36
|
state.dataProductLoadingState.hasFailed, isLoading: state.dataProductLoadingState.isInProgress, onChange: (newValue) => {
|
|
35
37
|
state.setSelectedDataProduct(newValue?.value ?? '');
|
|
36
|
-
state
|
|
38
|
+
state
|
|
39
|
+
.fetchAccessPoints(auth.user?.access_token)
|
|
40
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
37
41
|
}, value: state.selectedDataProduct
|
|
38
42
|
? {
|
|
39
43
|
label: state.selectedDataProduct,
|
|
40
44
|
value: state.selectedDataProduct,
|
|
41
45
|
}
|
|
42
|
-
: null, placeholder: `Choose a Data Product`, isClearable: false, escapeClearsValue: true })] }), state.
|
|
43
|
-
label: env,
|
|
44
|
-
value: env,
|
|
45
|
-
})), disabled: false, isLoading: false, onChange: (newValue) => {
|
|
46
|
-
const env = newValue?.value ?? '';
|
|
47
|
-
state.setSelectedIngestEnvironment(env);
|
|
48
|
-
state.fetchAccessPoints();
|
|
49
|
-
}, value: state.selectedIngestEnvironment
|
|
50
|
-
? {
|
|
51
|
-
label: state.selectedIngestEnvironment,
|
|
52
|
-
value: state.selectedIngestEnvironment,
|
|
53
|
-
}
|
|
54
|
-
: null, isClearable: false, escapeClearsValue: true })] })), state.accessPoints.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Access Point" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: state.accessPoints.map((accessPoint) => ({
|
|
46
|
+
: null, placeholder: `Choose a Data Product`, isClearable: false, escapeClearsValue: true })] }), state.accessPoints.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Access Point" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: state.accessPoints.map((accessPoint) => ({
|
|
55
47
|
label: accessPoint,
|
|
56
48
|
value: accessPoint,
|
|
57
49
|
})), disabled: false, isLoading: false, onChange: (newValue) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseProducerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,+EAA+E,CAAC;
|
|
1
|
+
{"version":3,"file":"LakehouseProducerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,+EAA+E,CAAC;AAYjJ,eAAO,MAAM,sCAAsC,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5D,aAAa,EAAE,2CAA2C,CAAC;CAC5D,CA+IC,CAAC"}
|
|
@@ -15,18 +15,26 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
|
-
import { FormButton, FormTextInput } from '@finos/legend-data-cube';
|
|
18
|
+
import { FormButton, FormCheckbox, FormTextInput, } from '@finos/legend-data-cube';
|
|
19
19
|
import { CustomSelectorInput } from '@finos/legend-art';
|
|
20
20
|
import { useAuth } from 'react-oidc-context';
|
|
21
21
|
import { useLegendDataCubeBuilderStore } from '../LegendDataCubeBuilderStoreProvider.js';
|
|
22
22
|
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
23
|
-
import { useEffect } from 'react';
|
|
23
|
+
import { useEffect, useState } from 'react';
|
|
24
24
|
export const LakehouseProducerDataCubeSourceBuilder = observer(({ sourceBuilder: state }) => {
|
|
25
25
|
const auth = useAuth();
|
|
26
26
|
const store = useLegendDataCubeBuilderStore();
|
|
27
|
+
const [isIcebergFlowSelected, setIsIcebergFlowSelected] = useState(true);
|
|
28
|
+
const toggleSetisIcebergEnabled = () => {
|
|
29
|
+
setIsIcebergFlowSelected(!isIcebergFlowSelected);
|
|
30
|
+
state.setEnableIceberg(!isIcebergFlowSelected);
|
|
31
|
+
};
|
|
27
32
|
useEffect(() => {
|
|
28
33
|
state.reset();
|
|
29
34
|
}, [state]);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
state.setUserManagerSettings(auth.settings);
|
|
37
|
+
}, [state, auth]);
|
|
30
38
|
function createUrnPairs(urns) {
|
|
31
39
|
return urns.map((urn) => ({
|
|
32
40
|
urn,
|
|
@@ -39,7 +47,7 @@ export const LakehouseProducerDataCubeSourceBuilder = observer(({ sourceBuilder:
|
|
|
39
47
|
state
|
|
40
48
|
.fetchIngestUrns(auth.user?.access_token)
|
|
41
49
|
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
42
|
-
}, children: "Proceed" })] })] }), state.ingestUrns.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-3", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Ingest Urn" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector text-nowrap", options: createUrnPairs(state.ingestUrns)
|
|
50
|
+
}, children: "Proceed" })] })] }), state.icebergEnabled && (_jsx("div", { className: "query-setup__wizard__group mt-2", children: _jsx("div", { className: "flex h-5 w-[calc(100%_-_40px)] overflow-x-auto", children: _jsx(FormCheckbox, { label: "Use Iceberg", checked: isIcebergFlowSelected, onChange: toggleSetisIcebergEnabled }) }) })), state.ingestUrns.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-3", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Ingest Urn" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector text-nowrap", options: createUrnPairs(state.ingestUrns)
|
|
43
51
|
.filter((def) => def.decoratedUrn !== undefined)
|
|
44
52
|
.map((urn) => ({
|
|
45
53
|
label: guaranteeNonNullable(urn.decoratedUrn),
|
|
@@ -63,7 +71,8 @@ export const LakehouseProducerDataCubeSourceBuilder = observer(({ sourceBuilder:
|
|
|
63
71
|
state.setSelectedTable(table);
|
|
64
72
|
}, value: state.selectedTable
|
|
65
73
|
? { label: state.selectedTable, value: state.selectedTable }
|
|
66
|
-
: null, isClearable: false, escapeClearsValue: true })] })), state.selectedTable &&
|
|
74
|
+
: null, isClearable: false, escapeClearsValue: true })] })), state.selectedTable &&
|
|
75
|
+
(!isIcebergFlowSelected || !state.icebergEnabled) && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Warehouse" }), _jsx(FormTextInput, { className: "w-full text-base text-black", value: state.warehouse, onChange: (event) => {
|
|
67
76
|
state.setWarehouse(event.target.value);
|
|
68
77
|
} })] }))] }) }));
|
|
69
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseProducerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,
|
|
1
|
+
{"version":3,"file":"LakehouseProducerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseProducerDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,8EAA8E,CAAC;AAK/I,eAAO,MAAM,qCAAqC,WACxC;IACN,mBAAmB,EAAE,0CAA0C,CAAC;CACjE;;
|
|
1
|
+
{"version":3,"file":"LakehouseProducerDataCubeSourceLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceLoader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,8EAA8E,CAAC;AAK/I,eAAO,MAAM,qCAAqC,WACxC;IACN,mBAAmB,EAAE,0CAA0C,CAAC;CACjE;;CAgDF,CAAC"}
|
|
@@ -26,6 +26,9 @@ export const LakehouseProducerDataCubeSourceLoader = observer((props) => {
|
|
|
26
26
|
useEffect(() => {
|
|
27
27
|
partialSourceLoader.reset();
|
|
28
28
|
}, [partialSourceLoader]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
partialSourceLoader.setUserManagerSettings(auth.settings);
|
|
31
|
+
}, [partialSourceLoader, auth]);
|
|
29
32
|
return (_jsx("div", { className: "flex h-full w-full", children: _jsx("div", { className: "m-3 flex w-full flex-col items-stretch gap-2 text-neutral-500", children: _jsxs("div", { className: "query-setup__wizard__group", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Ingest Urn" }), _jsxs("div", { className: "flex h-full w-full flex-auto items-center justify-between text-nowrap", children: [_jsx(FormTextInput, { className: "w-3/4 text-base", value: partialSourceLoader.ingestDefinitionUrn, disabled: true }), _jsx(FormButton, { compact: true, className: "ml-1.5 text-nowrap text-sm text-black", onClick: () => {
|
|
30
33
|
partialSourceLoader
|
|
31
34
|
.loadIngestDefinition(auth.user?.access_token, store.ingestServerClient)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseProducerDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceLoader.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,MAAM,qCAAqC,GAAG,QAAQ,CAC3D,CAAC,KAEA,EAAE,EAAE;IACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,cAAK,SAAS,EAAC,oBAAoB,YACjC,cAAK,SAAS,EAAC,+DAA+D,YAC5E,eAAK,SAAS,EAAC,4BAA4B,aACzC,cAAK,SAAS,EAAC,mCAAmC,2BAAiB,EACnE,eAAK,SAAS,EAAC,uEAAuE,aACpF,KAAC,aAAa,IACZ,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,EAC9C,QAAQ,EAAE,IAAI,GACd,EACF,KAAC,UAAU,IACT,OAAO,EAAE,IAAI,EACb,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,GAAG,EAAE;oCACZ,mBAAmB;yCAChB,oBAAoB,CACnB,IAAI,CAAC,IAAI,EAAE,YAAY,EACvB,KAAK,CAAC,kBAAkB,CACzB;yCACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;gCACN,CAAC,YAEA,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;oCAC5C,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,aAAa,GACN,IACT,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"LakehouseProducerDataCubeSourceLoader.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseProducerDataCubeSourceLoader.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,CAAC,MAAM,qCAAqC,GAAG,QAAQ,CAC3D,CAAC,KAEA,EAAE,EAAE;IACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,6BAA6B,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhC,OAAO,CACL,cAAK,SAAS,EAAC,oBAAoB,YACjC,cAAK,SAAS,EAAC,+DAA+D,YAC5E,eAAK,SAAS,EAAC,4BAA4B,aACzC,cAAK,SAAS,EAAC,mCAAmC,2BAAiB,EACnE,eAAK,SAAS,EAAC,uEAAuE,aACpF,KAAC,aAAa,IACZ,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,EAC9C,QAAQ,EAAE,IAAI,GACd,EACF,KAAC,UAAU,IACT,OAAO,EAAE,IAAI,EACb,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,GAAG,EAAE;oCACZ,mBAAmB;yCAChB,oBAAoB,CACnB,IAAI,CAAC,IAAI,EAAE,YAAY,EACvB,KAAK,CAAC,kBAAkB,CACzB;yCACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;gCACN,CAAC,YAEA,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;oCAC5C,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,aAAa,GACN,IACT,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-data-cube",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Legend DataCube application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"test:watch": "jest --watch"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@duckdb/duckdb-wasm": "1.29.0",
|
|
45
|
+
"@duckdb/duckdb-wasm": "1.29.1-dev283.0",
|
|
46
46
|
"@finos/legend-application": "workspace:*",
|
|
47
47
|
"@finos/legend-art": "workspace:*",
|
|
48
48
|
"@finos/legend-code-editor": "workspace:*",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"apache-arrow": "19.0.1",
|
|
59
59
|
"mobx": "6.13.6",
|
|
60
60
|
"mobx-react-lite": "4.1.0",
|
|
61
|
+
"oidc-client-ts": "^3.2.0",
|
|
61
62
|
"react": "19.0.0",
|
|
62
63
|
"react-dom": "19.0.0",
|
|
63
64
|
"react-oidc-context": "^3.3.0",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, type V1_PureModelContext, TDSExecutionResult, V1_AppliedFunction, V1_Variable, type QueryInfo } from '@finos/legend-graph';
|
|
16
|
+
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, type V1_PureModelContext, TDSExecutionResult, V1_PureModelContextData, V1_AppliedFunction, V1_Variable, type QueryInfo } from '@finos/legend-graph';
|
|
17
17
|
import { DataCubeEngine, type CompletionItem, CachedDataCubeSource, type DataCubeExecutionOptions, type DataCubeCacheInitializationOptions, type DataCubeSource, DataCubeGridClientExportFormat } from '@finos/legend-data-cube';
|
|
18
18
|
import { LogEvent, type PlainObject, type StopWatch, type TimingsRecord } from '@finos/legend-shared';
|
|
19
19
|
import type { LegendDataCubeApplicationStore } from './LegendDataCubeBaseStore.js';
|
|
@@ -57,6 +57,7 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
57
57
|
exportData(query: V1_Lambda, source: DataCubeSource, format: DataCubeGridClientExportFormat, options?: DataCubeExecutionOptions | undefined): Promise<void | Response>;
|
|
58
58
|
private _processLegendQueryParams;
|
|
59
59
|
buildExecutionContext(source: DataCubeSource): V1_AppliedFunction | undefined;
|
|
60
|
+
parseCompatibleModel(code: string): Promise<PlainObject<V1_PureModelContextData>>;
|
|
60
61
|
registerIngestDefinition(ingestDefinition: PlainObject | undefined): void;
|
|
61
62
|
initializeCache(source: DataCubeSource, options?: DataCubeCacheInitializationOptions | undefined): Promise<CachedDataCubeSource | undefined>;
|
|
62
63
|
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
@@ -79,6 +80,10 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
79
80
|
dbReference: string;
|
|
80
81
|
columnNames: string[];
|
|
81
82
|
}>;
|
|
83
|
+
ingestIcebergTable(warehouse: string, paths: string[], catalogApi: string, refId?: string, token?: string): Promise<{
|
|
84
|
+
dbReference: string;
|
|
85
|
+
}>;
|
|
86
|
+
private _getColumnType;
|
|
82
87
|
private _synthesizeMinimalModelContext;
|
|
83
88
|
private _synthesizeLakehouseProducerPMCD;
|
|
84
89
|
private _synthesizeLakehouseConsumerPMCD;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,KAAK,mBAAmB,EAIxB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ import { deserialize, serialize } from 'serializr';
|
|
|
23
23
|
import { resolveVersion, } from '@finos/legend-server-depot';
|
|
24
24
|
import { LOCAL_FILE_QUERY_DATA_CUBE_SOURCE_TYPE, LocalFileDataCubeSource, RawLocalFileQueryDataCubeSource, } from './model/LocalFileDataCubeSource.js';
|
|
25
25
|
import { QUERY_BUILDER_PURE_PATH } from '@finos/legend-query-builder';
|
|
26
|
-
import { LAKEHOUSE_PRODUCER_DATA_CUBE_SOURCE_TYPE, LakehouseProducerDataCubeSource, RawLakehouseProducerDataCubeSource, } from './model/LakehouseProducerDataCubeSource.js';
|
|
26
|
+
import { LAKEHOUSE_PRODUCER_DATA_CUBE_SOURCE_TYPE, LakehouseProducerDataCubeSource, LakehouseProducerIcebergCachedDataCubeSource, RawLakehouseProducerDataCubeSource, } from './model/LakehouseProducerDataCubeSource.js';
|
|
27
27
|
import { LAKEHOUSE_CONSUMER_DATA_CUBE_SOURCE_TYPE, LakehouseConsumerDataCubeSource, RawLakehouseConsumerDataCubeSource, } from './model/LakehouseConsumerDataCubeSource.js';
|
|
28
28
|
export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
29
29
|
_application;
|
|
@@ -48,6 +48,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
48
48
|
}
|
|
49
49
|
// ---------------------------------- IMPLEMENTATION ----------------------------------
|
|
50
50
|
getDataFromSource(source) {
|
|
51
|
+
// TODO: add lakehouse sources
|
|
51
52
|
if (source instanceof LegendQueryDataCubeSource) {
|
|
52
53
|
const queryInfo = source.info;
|
|
53
54
|
return {
|
|
@@ -207,6 +208,8 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
207
208
|
warehouse: rawSource.warehouse,
|
|
208
209
|
ingestServerUrl: rawSource.ingestServerUrl,
|
|
209
210
|
},
|
|
211
|
+
icebergCatalog: rawSource.icebergConfig?.catalogUrl,
|
|
212
|
+
paths: rawSource.paths,
|
|
210
213
|
sourceType: source._type,
|
|
211
214
|
};
|
|
212
215
|
}
|
|
@@ -263,60 +266,7 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
263
266
|
// TODO: confirm this is in accordance to engine
|
|
264
267
|
// check if we have a duckdb enum mapping
|
|
265
268
|
// See https://duckdb.org/docs/sql/data_types/overview.html
|
|
266
|
-
|
|
267
|
-
case 'BIT': {
|
|
268
|
-
column.type = new V1_Bit();
|
|
269
|
-
break;
|
|
270
|
-
}
|
|
271
|
-
case 'BOOLEAN': {
|
|
272
|
-
// TODO: understand why boolean is not present in relationalDataType
|
|
273
|
-
column.type = new V1_VarChar();
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
case 'DATE': {
|
|
277
|
-
column.type = new V1_Date();
|
|
278
|
-
break;
|
|
279
|
-
}
|
|
280
|
-
case 'DECIMAL': {
|
|
281
|
-
column.type = new V1_Decimal();
|
|
282
|
-
break;
|
|
283
|
-
}
|
|
284
|
-
case 'DOUBLE': {
|
|
285
|
-
column.type = new V1_Double();
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
case 'FLOAT': {
|
|
289
|
-
column.type = new V1_Float();
|
|
290
|
-
break;
|
|
291
|
-
}
|
|
292
|
-
case 'INTEGER': {
|
|
293
|
-
column.type = new V1_Integer();
|
|
294
|
-
break;
|
|
295
|
-
}
|
|
296
|
-
case 'TININT': {
|
|
297
|
-
column.type = new V1_TinyInt();
|
|
298
|
-
break;
|
|
299
|
-
}
|
|
300
|
-
case 'SMALLINT': {
|
|
301
|
-
column.type = new V1_SmallInt();
|
|
302
|
-
break;
|
|
303
|
-
}
|
|
304
|
-
case 'BIGINT': {
|
|
305
|
-
column.type = new V1_BigInt();
|
|
306
|
-
break;
|
|
307
|
-
}
|
|
308
|
-
case 'TIMESTAMP': {
|
|
309
|
-
column.type = new V1_Timestamp();
|
|
310
|
-
break;
|
|
311
|
-
}
|
|
312
|
-
case 'VARCHAR': {
|
|
313
|
-
column.type = new V1_VarChar();
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
316
|
-
default: {
|
|
317
|
-
throw new UnsupportedOperationError(`Can't ingest local file data: failed to find matching relational data type for DuckDB type '${col[1]}' when synthesizing table definition`);
|
|
318
|
-
}
|
|
319
|
-
}
|
|
269
|
+
this._getColumnType(col, column);
|
|
320
270
|
return column;
|
|
321
271
|
}),
|
|
322
272
|
});
|
|
@@ -408,24 +358,63 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
408
358
|
}
|
|
409
359
|
case LAKEHOUSE_PRODUCER_DATA_CUBE_SOURCE_TYPE: {
|
|
410
360
|
const rawSource = RawLakehouseProducerDataCubeSource.serialization.fromJson(value);
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
361
|
+
if (rawSource.icebergConfig?.icebergRef &&
|
|
362
|
+
rawSource.icebergConfig.catalogUrl) {
|
|
363
|
+
const source = new LakehouseProducerIcebergCachedDataCubeSource();
|
|
364
|
+
const tableCatalog = this._duckDBEngine.retrieveCatalogTable(rawSource.icebergConfig.icebergRef);
|
|
365
|
+
const { model, database, schema, table, runtime } = this._synthesizeMinimalModelContext({
|
|
366
|
+
schemaName: tableCatalog.schemaName,
|
|
367
|
+
tableName: tableCatalog.tableName,
|
|
368
|
+
tableColumns: tableCatalog.columns.map((col) => {
|
|
369
|
+
const column = new V1_Column();
|
|
370
|
+
column.name = col[0];
|
|
371
|
+
// TODO: confirm this is in accordance to engine
|
|
372
|
+
// check if we have a duckdb enum mapping
|
|
373
|
+
// See https://duckdb.org/docs/sql/data_types/overview.html
|
|
374
|
+
this._getColumnType(col, column);
|
|
375
|
+
return column;
|
|
376
|
+
}),
|
|
377
|
+
});
|
|
378
|
+
source.db = database.path;
|
|
379
|
+
source.model = model;
|
|
380
|
+
source.table = table.name;
|
|
381
|
+
source.schema = schema.name;
|
|
382
|
+
source.runtime = runtime.path;
|
|
383
|
+
const query = new V1_ClassInstance();
|
|
384
|
+
query.type = V1_ClassInstanceType.RELATION_STORE_ACCESSOR;
|
|
385
|
+
const storeAccessor = new V1_RelationStoreAccessor();
|
|
386
|
+
storeAccessor.path = [source.db, source.schema, source.table];
|
|
387
|
+
query.value = storeAccessor;
|
|
388
|
+
source.query = query;
|
|
389
|
+
try {
|
|
390
|
+
source.columns = (await this._getLambdaRelationType(this.serializeValueSpecification(_lambda([], [source.query])), source.model)).columns;
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
assertErrorThrown(error);
|
|
394
|
+
throw new Error(`Can't get query result columns. Make sure the source query return a relation (i.e. typed TDS). Error: ${error.message}`);
|
|
395
|
+
}
|
|
396
|
+
return source;
|
|
423
397
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
398
|
+
else {
|
|
399
|
+
const source = new LakehouseProducerDataCubeSource();
|
|
400
|
+
const query = new V1_ClassInstance();
|
|
401
|
+
query.type = V1_ClassInstanceType.INGEST_ACCESSOR;
|
|
402
|
+
const ingestAccesor = new V1_RelationStoreAccessor();
|
|
403
|
+
ingestAccesor.path = rawSource.paths;
|
|
404
|
+
ingestAccesor.metadata = false;
|
|
405
|
+
query.value = ingestAccesor;
|
|
406
|
+
source.query = query;
|
|
407
|
+
const model = this._synthesizeLakehouseProducerPMCD(rawSource, source);
|
|
408
|
+
source.model = V1_serializePureModelContextData(model);
|
|
409
|
+
try {
|
|
410
|
+
source.columns = (await this._getLambdaRelationType(this.serializeValueSpecification(_lambda([], [source.query])), source.model)).columns;
|
|
411
|
+
}
|
|
412
|
+
catch (error) {
|
|
413
|
+
assertErrorThrown(error);
|
|
414
|
+
throw new Error(`Can't get query result columns. Make sure the source query return a relation (i.e. typed TDS). Error: ${error.message}`);
|
|
415
|
+
}
|
|
416
|
+
return source;
|
|
427
417
|
}
|
|
428
|
-
return source;
|
|
429
418
|
}
|
|
430
419
|
case LAKEHOUSE_CONSUMER_DATA_CUBE_SOURCE_TYPE: {
|
|
431
420
|
const rawSource = RawLakehouseConsumerDataCubeSource.serialization.fromJson(value);
|
|
@@ -613,6 +602,27 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
613
602
|
executionTime: endTime - startTime,
|
|
614
603
|
};
|
|
615
604
|
}
|
|
605
|
+
else if (source instanceof LakehouseProducerIcebergCachedDataCubeSource) {
|
|
606
|
+
const executionPlan = await this._generateExecutionPlan(query, source.model, [],
|
|
607
|
+
// NOTE: for local file, we're using DuckDB, but its protocol models
|
|
608
|
+
// are not available in the latest production protocol version V1_33_0, so
|
|
609
|
+
// we have to force using VX_X_X
|
|
610
|
+
// once we either cut another protocol version or backport the DuckDB models
|
|
611
|
+
// to V1_33_0, we will can remove this
|
|
612
|
+
{ ...options, clientVersion: PureClientVersion.VX_X_X });
|
|
613
|
+
const sql = guaranteeNonNullable(executionPlan instanceof V1_SimpleExecutionPlan
|
|
614
|
+
? executionPlan.rootExecutionNode.executionNodes
|
|
615
|
+
.filter(filterByType(V1_SQLExecutionNode))
|
|
616
|
+
.at(-1)?.sqlQuery
|
|
617
|
+
: undefined, `Can't process execution plan: failed to extract generated SQL`);
|
|
618
|
+
const endTime = performance.now();
|
|
619
|
+
return {
|
|
620
|
+
executedQuery: await queryCodePromise,
|
|
621
|
+
executedSQL: sql,
|
|
622
|
+
result: await this._duckDBEngine.runSQLQuery(sql),
|
|
623
|
+
executionTime: endTime - startTime,
|
|
624
|
+
};
|
|
625
|
+
}
|
|
616
626
|
else {
|
|
617
627
|
throw new UnsupportedOperationError(`Can't execute query with unsupported source`);
|
|
618
628
|
}
|
|
@@ -729,6 +739,9 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
729
739
|
else if (source instanceof LocalFileDataCubeSource) {
|
|
730
740
|
return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
|
|
731
741
|
}
|
|
742
|
+
else if (source instanceof LakehouseProducerIcebergCachedDataCubeSource) {
|
|
743
|
+
return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
|
|
744
|
+
}
|
|
732
745
|
else if (source instanceof LakehouseProducerDataCubeSource) {
|
|
733
746
|
return _function(DataCubeFunction.FROM, [_elementPtr(source.runtime)].filter(isNonNullable));
|
|
734
747
|
}
|
|
@@ -737,6 +750,9 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
737
750
|
}
|
|
738
751
|
return undefined;
|
|
739
752
|
}
|
|
753
|
+
async parseCompatibleModel(code) {
|
|
754
|
+
return this._engineServerClient.grammarToJSON_model(code);
|
|
755
|
+
}
|
|
740
756
|
// ---------------------------------- INGEST ---------------------------------------
|
|
741
757
|
registerIngestDefinition(ingestDefinition) {
|
|
742
758
|
this._ingestDefinition = ingestDefinition;
|
|
@@ -847,6 +863,9 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
847
863
|
else if (source instanceof LakehouseProducerDataCubeSource) {
|
|
848
864
|
return this._getLambdaRelationType(query, source.model);
|
|
849
865
|
}
|
|
866
|
+
else if (source instanceof LakehouseProducerIcebergCachedDataCubeSource) {
|
|
867
|
+
return this._getLambdaRelationType(query, source.model);
|
|
868
|
+
}
|
|
850
869
|
else if (source instanceof LakehouseConsumerDataCubeSource) {
|
|
851
870
|
return this._getLambdaRelationType(query, source.model);
|
|
852
871
|
}
|
|
@@ -989,6 +1008,66 @@ export class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
989
1008
|
const { dbReference, columnNames } = await this._duckDBEngine.ingestLocalFileData(data, format, refId);
|
|
990
1009
|
return { dbReference, columnNames };
|
|
991
1010
|
}
|
|
1011
|
+
async ingestIcebergTable(warehouse, paths, catalogApi, refId, token) {
|
|
1012
|
+
const { dbReference } = await this._duckDBEngine.ingestIcebergTable(warehouse, paths, catalogApi, refId, token);
|
|
1013
|
+
return { dbReference };
|
|
1014
|
+
}
|
|
1015
|
+
_getColumnType(col, column) {
|
|
1016
|
+
switch (col[1]) {
|
|
1017
|
+
case 'BIT': {
|
|
1018
|
+
column.type = new V1_Bit();
|
|
1019
|
+
break;
|
|
1020
|
+
}
|
|
1021
|
+
case 'BOOLEAN': {
|
|
1022
|
+
// TODO: understand why boolean is not present in relationalDataType
|
|
1023
|
+
column.type = new V1_VarChar();
|
|
1024
|
+
break;
|
|
1025
|
+
}
|
|
1026
|
+
case 'DATE': {
|
|
1027
|
+
column.type = new V1_Date();
|
|
1028
|
+
break;
|
|
1029
|
+
}
|
|
1030
|
+
case 'DECIMAL': {
|
|
1031
|
+
column.type = new V1_Decimal();
|
|
1032
|
+
break;
|
|
1033
|
+
}
|
|
1034
|
+
case 'DOUBLE': {
|
|
1035
|
+
column.type = new V1_Double();
|
|
1036
|
+
break;
|
|
1037
|
+
}
|
|
1038
|
+
case 'FLOAT': {
|
|
1039
|
+
column.type = new V1_Float();
|
|
1040
|
+
break;
|
|
1041
|
+
}
|
|
1042
|
+
case 'INTEGER': {
|
|
1043
|
+
column.type = new V1_Integer();
|
|
1044
|
+
break;
|
|
1045
|
+
}
|
|
1046
|
+
case 'TININT': {
|
|
1047
|
+
column.type = new V1_TinyInt();
|
|
1048
|
+
break;
|
|
1049
|
+
}
|
|
1050
|
+
case 'SMALLINT': {
|
|
1051
|
+
column.type = new V1_SmallInt();
|
|
1052
|
+
break;
|
|
1053
|
+
}
|
|
1054
|
+
case 'BIGINT': {
|
|
1055
|
+
column.type = new V1_BigInt();
|
|
1056
|
+
break;
|
|
1057
|
+
}
|
|
1058
|
+
case 'TIMESTAMP': {
|
|
1059
|
+
column.type = new V1_Timestamp();
|
|
1060
|
+
break;
|
|
1061
|
+
}
|
|
1062
|
+
case 'VARCHAR': {
|
|
1063
|
+
column.type = new V1_VarChar();
|
|
1064
|
+
break;
|
|
1065
|
+
}
|
|
1066
|
+
default: {
|
|
1067
|
+
throw new UnsupportedOperationError(`Can't ingest local file data: failed to find matching relational data type for DuckDB type '${col[1]}' when synthesizing table definition`);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
992
1071
|
_synthesizeMinimalModelContext(data) {
|
|
993
1072
|
const { schemaName, tableName, tableColumns } = data;
|
|
994
1073
|
// model
|