public void loadAllTables() throws SQLException { for (String tableName : ALL_TABLES) { loadH2Table(tableName); } }
@BeforeClass public static void setUp() throws Exception { staticCreateTestMetadata("src/test/resources/ut_meta/jdbc_source"); JdbcConnector connector = SourceConnectorFactory.getJdbcConnector(getTestConfig()); h2Conn = connector.getConnection(); h2Db = new H2Database(h2Conn, getTestConfig(), "default"); h2Db.loadAllTables(); }
private void loadH2Table(String tableName) throws SQLException { TableMetadataManager metaMgr = TableMetadataManager.getInstance(config); TableDesc tableDesc = metaMgr.getTableDesc(tableName.toUpperCase(Locale.ROOT), project); File tempFile = null; try { tempFile = File.createTempFile("tmp_h2", ".csv"); FileOutputStream tempFileStream = new FileOutputStream(tempFile); String path = path(tableDesc); InputStream csvStream = metaMgr.getStore().getResource(path).content(); IOUtils.copy(csvStream, tempFileStream); csvStream.close(); tempFileStream.close(); } catch (IOException e) { e.printStackTrace(); } String cvsFilePath = tempFile.getPath(); try (Statement stmt = h2Connection.createStatement()) { String createDBSql = "CREATE SCHEMA IF NOT EXISTS DEFAULT;\nCREATE SCHEMA IF NOT EXISTS EDW;\nSET SCHEMA DEFAULT;\n"; stmt.executeUpdate(createDBSql); String sql = generateCreateH2TableSql(tableDesc, cvsFilePath); stmt.executeUpdate(sql); List<String> createIndexStatements = generateCreateH2IndexSql(tableDesc); for (String indexSql : createIndexStatements) { stmt.executeUpdate(indexSql); } } tempFile.delete(); }
@AfterClass public static void after() throws Exception { h2Db.dropAll(); DBUtils.closeQuietly(h2Conn); staticCleanupTestMetadata(); }
private String generateCreateH2TableSql(TableDesc tableDesc, String csvFilePath) { StringBuilder ddl = new StringBuilder(); StringBuilder csvColumns = new StringBuilder(); ddl.append("CREATE TABLE " + tableDesc.getIdentity() + "\n"); ddl.append("(" + "\n"); for (int i = 0; i < tableDesc.getColumns().length; i++) { ColumnDesc col = tableDesc.getColumns()[i]; if (col.isComputedColumn()) { continue; } if (i > 0) { ddl.append(","); csvColumns.append(","); } ddl.append(col.getName() + " " + getH2DataType((col.getDatatype())) + "\n"); csvColumns.append(col.getName()); } ddl.append(")" + "\n"); ddl.append("AS SELECT * FROM CSVREAD('" + csvFilePath + "', '" + csvColumns + "', 'charset=UTF-8 fieldSeparator=,');"); return ddl.toString(); }
@BeforeClass public static void setUp() throws Exception { staticCreateTestMetadata(); JdbcConnector connector = SourceConnectorFactory.getJdbcConnector(getTestConfig()); h2Conn = connector.getConnection(); h2Db = new H2Database(h2Conn, getTestConfig(), "default"); h2Db.loadAllTables(); }
@AfterClass public static void after() throws Exception { h2Db.dropAll(); DBUtils.closeQuietly(h2Conn); staticCleanupTestMetadata(); }
@BeforeClass public static void setUp() throws Exception { staticCreateTestMetadata(); getTestConfig().setProperty("kylin.source.jdbc.dialect", "testing"); connector = SourceConnectorFactory.getJdbcConnector(getTestConfig()); h2Conn = connector.getConnection(); h2Db = new H2Database(h2Conn, getTestConfig(), "default"); h2Db.loadAllTables(); }