CREATE TABLE SOURCE_TABLE (ID bigint, first_name varchar(20));
-- add new entries
INSERT INTO SOURCE_TABLE VALUES(7, 'John');
INSERT INTO SOURCE_TABLE VALUES(42, 'Jane');
INSERT INTO SOURCE_TABLE VALUES(42, 'Amy');
"hdbremotetablereplica": {
"plugin_name": "com.sap.hana.di.remotetablereplica"
}
Note : The .hdiconfig in BAS may not have released with the new version which consists of the .hdbremotetablereplica plugin.
VIRTUAL TABLE "SOURCE_VT" AT "HANA1"."<NULL>"."GRANTOR"."SOURCE_TABLE"
REMOTE TABLE REPLICA "SOURCE_RT" ON "SOURCE_VT"
Note: Undeploy of the RTR will delete the SOURCE_RT
CREATE LOCAL TEMPORARY COLUMN TABLE #PATHS LIKE _SYS_DI.TT_FILESFOLDERS_CONTENT;
INSERT INTO #PATHS (PATH, CONTENT) VALUES ('.hdiconfig', ' { "file_suffixes" : {
"hdbvirtualtable" : { "plugin_name" : "com.sap.hana.di.virtualtable" },
"hdbremotetablereplica" : { "plugin_name" : "com.sap.hana.di.remotetablereplica" },
"hdbvirtualtableconfig" : { "plugin_name" : "com.sap.hana.di.virtualtable.config" },
"hdbrole" : { "plugin_name" : "com.sap.hana.di.role" }
} }');
INSERT INTO #PATHS (PATH, CONTENT) VALUES ('.hdbvirtualtable', 'virtual table VIRTUAL_TABLE AT DEFAULT_REMOTE_SOURCE.DEFAULT_OBJECT');
INSERT INTO #PATHS (PATH, CONTENT) VALUES ('.hdbvirtualtableconfig', '{
"VIRTUAL_TABLE" : {
"target": {
"remote" : "SOURCE_VT",
"database": "<Null>",
"schema": "GRANTOR",
"object" : "SOURCE_TABLE"
}
}
}');
INSERT INTO #PATHS (PATH, CONTENT) VALUES ('role.hdbrole', '{"role": {"name": "MY_ROLE", "schema_privileges": [{"privileges": ["ALTER", "SELECT"]}]}}');
-- Replace the container name ( MY_CONTAINER ) to your container name
CALL MY_CONTAINER#DI.WRITE(#PATHS, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #PATHS;
CREATE LOCAL TEMPORARY COLUMN TABLE #DEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
INSERT INTO #DEPLOY_PATHS (PATH) VALUES ('.hdiconfig');
INSERT INTO #DEPLOY_PATHS (PATH) VALUES ('.hdbvirtualtable');
INSERT INTO #DEPLOY_PATHS (PATH) VALUES ('.hdbvirtualtableconfig');
INSERT INTO #DEPLOY_PATHS (PATH) VALUES ('role.hdbrole');
CREATE LOCAL TEMPORARY COLUMN TABLE #UNDEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
CALL MY_CONTAINER#DI.MAKE(#DEPLOY_PATHS, #UNDEPLOY_PATHS, _SYS_DI.T_NO_FILESFOLDERS_PARAMETERS, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #DEPLOY_PATHS;
DROP TABLE #UNDEPLOY_PATHS;
CREATE LOCAL TEMPORARY COLUMN TABLE #PATHS LIKE _SYS_DI.TT_FILESFOLDERS_CONTENT;
INSERT INTO #PATHS (PATH, CONTENT) VALUES ('.hdbremotetablereplica', 'REMOTE TABLE REPLICA "SOURCE_RT" ON "SOURCE_VT"');
CALL MY_CONTAINER#DI.WRITE(#PATHS, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #PATHS;
CREATE LOCAL TEMPORARY COLUMN TABLE #DEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
INSERT INTO #DEPLOY_PATHS (PATH) VALUES ('.hdbremotetablereplica');
CREATE LOCAL TEMPORARY COLUMN TABLE #UNDEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
CALL MY_CONTAINER#DI.MAKE(#DEPLOY_PATHS, #UNDEPLOY_PATHS, _SYS_DI.T_NO_FILESFOLDERS_PARAMETERS, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #DEPLOY_PATHS;
DROP TABLE #UNDEPLOY_PATHS;
CREATE LOCAL TEMPORARY COLUMN TABLE #ROLES LIKE _SYS_DI.TT_SCHEMA_ROLES;
INSERT INTO #ROLES ( ROLE_NAME, PRINCIPAL_SCHEMA_NAME, PRINCIPAL_NAME ) VALUES ( 'MY_ROLE', '', DBADMIN);
CALL MY_CONTAINER#DI.GRANT_CONTAINER_SCHEMA_ROLES(#ROLES, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #ROLES;
SELECT * FROM "MY_CONTAINER"."SOURCE_VT";
SELECT * FROM "MY_CONTAINER"."SOURCE_RT";
CREATE LOCAL TEMPORARY COLUMN TABLE #DEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
CREATE LOCAL TEMPORARY COLUMN TABLE #UNDEPLOY_PATHS LIKE _SYS_DI.TT_FILESFOLDERS;
INSERT INTO #UNDEPLOY_PATHS (PATH) VALUES ('.hdbremotetablereplica');
CALL MY_CONTAINER#DI.MAKE(#DEPLOY_PATHS, #UNDEPLOY_PATHS, _SYS_DI.T_NO_FILESFOLDERS_PARAMETERS, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?);
DROP TABLE #DEPLOY_PATHS;
DROP TABLE #UNDEPLOY_PATHS;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
11 | |
11 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
6 | |
6 |