webapps.admin.catalogview.jsp Maven / Gradle / Ivy
<%
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="org.apache.tajo.catalog.CatalogService" %>
<%@ page import="org.apache.tajo.catalog.Column" %>
<%@ page import="org.apache.tajo.catalog.TableDesc" %>
<%@ page import="org.apache.tajo.catalog.partition.PartitionMethodDesc" %>
<%@ page import="org.apache.tajo.master.TajoMaster" %>
<%@ page import="org.apache.tajo.service.ServiceTracker" %>
<%@ page import="org.apache.tajo.util.FileUtil" %>
<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
<%@ page import="java.util.Collection" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.net.InetSocketAddress" %>
<%
TajoMaster master = (TajoMaster) StaticHttpServer.getInstance().getAttribute("tajo.info.server.object");
String[] masterName = master.getMasterName().split(":");
InetSocketAddress socketAddress = new InetSocketAddress(masterName[0], Integer.parseInt(masterName[1]));
String masterLabel = socketAddress.getAddress().getHostName()+ ":" + socketAddress.getPort();
CatalogService catalog = master.getCatalog();
String catalogType = request.getParameter("type");
if(catalogType != null && "function".equals(catalogType)) {
%>
return;
<%
}
String selectedDatabase = request.getParameter("database");
if(selectedDatabase == null || selectedDatabase.trim().isEmpty()) {
selectedDatabase = "default";
}
TableDesc tableDesc = null;
String selectedTable = request.getParameter("table");
if(selectedTable != null && !selectedTable.trim().isEmpty()) {
tableDesc = catalog.getTableDesc(selectedDatabase, selectedTable);
} else {
selectedTable = "";
}
//TODO filter with database
Collection tableNames = catalog.getAllTableNames(selectedDatabase);
ServiceTracker haService = master.getContext().getHAService();
String activeLabel = "";
if (haService != null) {
if (haService.isActiveMaster()) {
activeLabel = "(active)";
} else {
activeLabel = "(backup)";
}
}
%>
Tajo
<%@ include file="header.jsp"%>
Tajo Master: <%=masterLabel%> <%=activeLabel%>
Catalog
Database:
<%
if(tableNames == null || tableNames.isEmpty()) {
out.write("No tables");
} else {
%>
Table Name
<%
for(String eachTableName: tableNames) {
String bold = "";
if(eachTableName.equals(selectedTable)) {
bold = "font-weight:bold";
}
String detailLink = "catalogview.jsp?database=" + selectedDatabase + "&table=" + eachTableName;
out.write("" + eachTableName + " ");
}
%>
<%
}
%>
Table name: <%=selectedTable%>
<%
if(tableDesc != null) {
List columns = tableDesc.getSchema().getColumns();
out.write("No Column name Type ");
int columnIndex = 1;
for(Column eachColumn: columns) {
out.write("" + columnIndex + " " + eachColumn.getSimpleName() + " " + eachColumn.getDataType().getType() + " ");
columnIndex++;
}
out.write("
");
out.write(" ");
if (tableDesc.getPartitionMethod() != null) {
PartitionMethodDesc partition = tableDesc.getPartitionMethod();
List partitionColumns = partition.getExpressionSchema().getColumns();
String partitionColumnStr = "";
String prefix = "";
for (Column eachColumn: partitionColumns) {
partitionColumnStr += prefix + eachColumn.toString();
prefix = "
";
}
out.write("");
out.write(" Partition");
out.write(" ");
out.write(" Type " + partition.getPartitionType().name() + " ");
out.write(" Columns " + partitionColumnStr + " ");
out.write("
");
out.write("");
}
String optionStr = "";
String prefix = "";
for(Map.Entry entry: tableDesc.getMeta().toMap().entrySet()) {
optionStr += prefix + "'" + entry.getKey() + "'='" + entry.getValue() + "'";
prefix = "
";
}
%>
Detail
Table path <%=tableDesc.getPath()%>
Store type <%=tableDesc.getMeta().getStoreType()%>
# rows <%=(tableDesc.hasStats() ? ("" + tableDesc.getStats().getNumRows()) : "-")%>
Volume <%=(tableDesc.hasStats() ? FileUtil.humanReadableByteCount(tableDesc.getStats().getNumBytes(),true) : "-")%>
Options <%=optionStr%>
<%
}
%>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy