ApplyUtil
Il codice di questa sezione viene salvato in un file chiamato ApplyUtil.java.
Concetti
Questa classe contiene una raccolta di metodi di utilità. Queste utility possono fornire:
- metadati su una particolare query
- informazioni di runtime sul processo AE
- informazioni sulle librerie condivise
- Informazioni sulle variabili d'ambiente AE
Codice
// ApplyUtil.java
// Useful collection of AE Utilty Functions
package org.netezza.education;
import org.netezza.ae.*;
public class ApplyUtil {
/** print Function AE metadata to standard output */
public static void printMetadata(Nzae ae) {
// print input metadata
final NzaeMetadata meta = ae.getMetadata();
String indent = " " + " " + " " + " ";
System.out.println("*** Input (Argument) Metadata ***");
int numInputColumns = meta.getInputColumnCount();
System.out.println("Number of input columns: "
+ numInputColumns);
for (int i = 0; i < numInputColumns; i++) {
System.out.println(
"column " + i + ": " +
NzaeDataTypes.nzTypeToString(
meta.getInputNzType(i)));
switch (meta.getInputNzType(i)) {
case NzaeDataTypes.NZUDSUDX_FIXED:
case NzaeDataTypes.NZUDSUDX_VARIABLE:
case NzaeDataTypes.NZUDSUDX_NATIONAL_FIXED:
case NzaeDataTypes.NZUDSUDX_NATIONAL_VARIABLE:
System.out.println(indent + "length="
+ meta.getInputSize(i));
break;
case NzaeDataTypes.NZUDSUDX_NUMERIC32:
case NzaeDataTypes.NZUDSUDX_NUMERIC64:
case NzaeDataTypes.NZUDSUDX_NUMERIC128:
System.out.println(indent + "size="
+ meta.getInputSize(i)
+ ", scale=" + meta.getInputScale(i));
break;
default:
break;
}
}
// print output metadata
System.out.println();
System.out.println("*** Output (Result) Metadata ***");
int numOutputColumns = meta.getOutputColumnCount();
System.out.println("Number of output columns: "
+ numOutputColumns);
for (int i = 0; i < numOutputColumns; i++) {
System.out.println(
"column " + i + ": " +
NzaeDataTypes.nzTypeToString(
meta.getOutputNzType(i)));
switch (meta.getOutputNzType(i)) {
case NzaeDataTypes.NZUDSUDX_FIXED:
case NzaeDataTypes.NZUDSUDX_VARIABLE:
case NzaeDataTypes.NZUDSUDX_NATIONAL_FIXED:
case NzaeDataTypes.NZUDSUDX_NATIONAL_VARIABLE:
System.out.println(indent + "length="
+ meta.getOutputSize(i));
break;
case NzaeDataTypes.NZUDSUDX_NUMERIC32:
case NzaeDataTypes.NZUDSUDX_NUMERIC64:
case NzaeDataTypes.NZUDSUDX_NUMERIC128:
System.out.println(indent + "size="
+ meta.getOutputSize(i) +
", scale=" + meta.outputScale(i));
break;
default:
break;
}
}
System.out.println();
}
/** print Shaper AE metadata to standard output */
public static void printMetadata(NzaeShaper ae) {
// print input metadata
final NzaeMetadata meta = ae.getMetadata();
String indent = " " + " " + " " + " ";
System.out.println("*** Input (Argument) Metadata ***");
int numInputColumns = meta.getInputColumnCount();
System.out.println("Number of input columns: "
+ numInputColumns);
for (int i = 0; i < numInputColumns; i++) {
System.out.println(
"column " + i + ": " +
NzaeDataTypes.nzTypeToString(
meta.getInputNzType(i)));
switch (meta.getInputNzType(i)) {
case NzaeDataTypes.NZUDSUDX_FIXED:
case NzaeDataTypes.NZUDSUDX_VARIABLE:
case NzaeDataTypes.NZUDSUDX_NATIONAL_FIXED:
case NzaeDataTypes.NZUDSUDX_NATIONAL_VARIABLE:
System.out.println(indent + "length="
+ meta.getInputSize(i));
break;
case NzaeDataTypes.NZUDSUDX_NUMERIC32:
case NzaeDataTypes.NZUDSUDX_NUMERIC64:
case NzaeDataTypes.NZUDSUDX_NUMERIC128:
System.out.println(indent + "size="
+ meta.getInputSize(i) +
", scale=" + meta.getInputScale(i));
break;
default:
break;
}
}
}
/** print runtime information to standard output */
public static void printRuntime(NzaeBase ae) {
final NzaeRuntime runtime = ae.getRuntime();
StringBuilder result = new StringBuilder();
result.append("*** Runtime Information ***" + sep);
result.append("sessionId="
+ runtime.getSessionId() + sep);
result.append("dataSliceId="
+ runtime.getDataSliceId() + sep);
result.append("transactionId="
+ runtime.getTransactionId() + sep);
result.append("hardwareId="
+ runtime.getHardwareId() + sep);
result.append("numberDataSlices="
+ runtime.getNumberDataSlices() + sep);
result.append("numberSpus="
+ runtime.getNumberSpus() + sep);
result.append("suggestedMemoryLimit=" +
runtime.getSuggestedMemoryLimit() + sep);
result.append("locus=");
switch (runtime.getLocus()) {
case NzaeRuntime.NZAE_LOCUS_POSTGRES:
result.append("NZAE_LOCUS_POSTGRES");
break;
case NzaeRuntime.NZAE_LOCUS_DBOS:
result.append("NZAE_LOCUS_DBOS");
break;
case NzaeRuntime.NZAE_LOCUS_SPU:
result.append("NZAE_LOCUS_SPU");
break;
default:
result.append("?");
}
result.append(sep);
result.append("adapterType=");
switch (runtime.getAdapterType()) {
case NzaeRuntime.NZAE_ADAPTER_OTHER:
result.append("NZAE_ADAPTER_OTHER");
break;
case NzaeRuntime.NZAE_ADAPTER_UDTF:
result.append("NZAE_ADAPTER_UDTF");
break;
case NzaeRuntime.NZAE_ADAPTER_UDF:
result.append("NZAE_ADAPTER_UDF");
break;
case NzaeRuntime.NZAE_ADAPTER_UDA:
result.append("NZAE_ADAPTER_UDA");
break;
default:
result.append("?");
}
result.append(sep);
result.append("userQuery=" + runtime.getUserQuery());
System.out.println(result);
}
/** print shared library information to standard output */
public static void printSharedLibraries(NzaeBase ae) {
NzaeLibrary lib = ae.getLibrary();
System.out.println("*** Local Libraries ***");
int count = lib.sizeLocalEntries();
for (int i = 0; i < count; i++) {
NzaeLibrary.NzaeLibraryInfo info
= lib.getLocalLibraryInfo(i);
System.out.println(info.libraryName + "="
+ info.libraryFullPath
+ " (" + info.autoLoad + ")");
}
System.out.println();
System.out.println("*** Parent Libraries ***");
count = lib.sizeParentEntries();
if (count == 0) {
System.out.println("none");
}
for (int i = 0; i < count; i++) {
NzaeLibrary.NzaeLibraryInfo info =
lib.getParentLibraryInfo(i);
System.out.println(info.libraryName + "="
+ info.libraryFullPath
+ " (" + info.autoLoad + ")");
}
System.out.println();
}
/** print AE Environment to standard output */
public static void printEnvironment(NzaeBase ae) {
System.out.println("*** Environment ***");
NzaeEnvironment env = ae.getEnvironment();
String key = env.getFirstKey();
do {
System.out.println(key + "=" + env.getValue(key));
key = env.getNextKey();
} while (key != null);
}
private static final String sep =
System.getProperty("line.separator");
}