[Enhancement](java-udf) java-udf module split to sub modules (#20185)
The java-udf module has become increasingly large and difficult to manage, making it inconvenient to package and use as needed. It needs to be split into multiple sub-modules, such as : java-commom、java-udf、jdbc-scanner、hudi-scanner、 paimon-scanner. Co-authored-by: lexluo <lexluo@tencent.com>
This commit is contained in:
@ -267,7 +267,7 @@ Status JniUtil::Init() {
|
||||
RETURN_IF_ERROR(JniUtil::GetJNIEnv(&env));
|
||||
if (env == NULL) return Status::InternalError("Failed to get/create JVM");
|
||||
// Find JniUtil class and create a global ref.
|
||||
jclass local_jni_util_cl = env->FindClass("org/apache/doris/udf/JniUtil");
|
||||
jclass local_jni_util_cl = env->FindClass("org/apache/doris/common/jni/utils/JniUtil");
|
||||
if (local_jni_util_cl == NULL) {
|
||||
if (env->ExceptionOccurred()) env->ExceptionDescribe();
|
||||
return Status::InternalError("Failed to find JniUtil class.");
|
||||
@ -283,7 +283,8 @@ Status JniUtil::Init() {
|
||||
}
|
||||
|
||||
// Find InternalException class and create a global ref.
|
||||
jclass local_internal_exc_cl = env->FindClass("org/apache/doris/udf/InternalException");
|
||||
jclass local_internal_exc_cl =
|
||||
env->FindClass("org/apache/doris/common/exception/InternalException");
|
||||
if (local_internal_exc_cl == NULL) {
|
||||
if (env->ExceptionOccurred()) env->ExceptionDescribe();
|
||||
return Status::InternalError("Failed to find JniUtil class.");
|
||||
@ -299,7 +300,8 @@ Status JniUtil::Init() {
|
||||
}
|
||||
|
||||
// Find JNINativeMethod class and create a global ref.
|
||||
jclass local_jni_native_exc_cl = env->FindClass("org/apache/doris/udf/JNINativeMethod");
|
||||
jclass local_jni_native_exc_cl =
|
||||
env->FindClass("org/apache/doris/common/jni/utils/JNINativeMethod");
|
||||
if (local_jni_native_exc_cl == nullptr) {
|
||||
if (env->ExceptionOccurred()) {
|
||||
env->ExceptionDescribe();
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
namespace doris {
|
||||
|
||||
/**
|
||||
* Java native methods for org.apache.doris.udf.JNINativeMethod.
|
||||
* Java native methods for org.apache.doris.common.jni.utils.JNINativeMethod.
|
||||
*/
|
||||
struct JavaNativeMethods {
|
||||
/**
|
||||
|
||||
@ -71,7 +71,7 @@ Status JniConnector::open(RuntimeState* state, RuntimeProfile* profile) {
|
||||
return Status::InternalError("Failed to get/create JVM");
|
||||
}
|
||||
RETURN_IF_ERROR(_init_jni_scanner(env, state->batch_size()));
|
||||
// Call org.apache.doris.jni.JniScanner#open
|
||||
// Call org.apache.doris.common.jni.JniScanner#open
|
||||
env->CallVoidMethod(_jni_scanner_obj, _jni_scanner_open);
|
||||
RETURN_ERROR_IF_EXC(env);
|
||||
return Status::OK();
|
||||
@ -82,7 +82,7 @@ Status JniConnector::init(
|
||||
_generate_predicates(colname_to_value_range);
|
||||
if (_predicates_length != 0 && _predicates != nullptr) {
|
||||
int64_t predicates_address = (int64_t)_predicates.get();
|
||||
// We can call org.apache.doris.jni.vec.ScanPredicate#parseScanPredicates to parse the
|
||||
// We can call org.apache.doris.common.jni.vec.ScanPredicate#parseScanPredicates to parse the
|
||||
// serialized predicates in java side.
|
||||
_scanner_params.emplace("push_down_predicates", std::to_string(predicates_address));
|
||||
}
|
||||
@ -90,7 +90,7 @@ Status JniConnector::init(
|
||||
}
|
||||
|
||||
Status JniConnector::get_nex_block(Block* block, size_t* read_rows, bool* eof) {
|
||||
// Call org.apache.doris.jni.JniScanner#getNextBatchMeta
|
||||
// Call org.apache.doris.common.jni.JniScanner#getNextBatchMeta
|
||||
// return the address of meta information
|
||||
JNIEnv* env = nullptr;
|
||||
RETURN_IF_ERROR(JniUtil::GetJNIEnv(&env));
|
||||
@ -123,7 +123,7 @@ Status JniConnector::close() {
|
||||
JNIEnv* env = nullptr;
|
||||
RETURN_IF_ERROR(JniUtil::GetJNIEnv(&env));
|
||||
// _fill_block may be failed and returned, we should release table in close.
|
||||
// org.apache.doris.jni.JniScanner#releaseTable is idempotent
|
||||
// org.apache.doris.common.jni.JniScanner#releaseTable is idempotent
|
||||
env->CallVoidMethod(_jni_scanner_obj, _jni_scanner_release_table);
|
||||
env->CallVoidMethod(_jni_scanner_obj, _jni_scanner_close);
|
||||
env->DeleteGlobalRef(_jni_scanner_obj);
|
||||
@ -199,7 +199,7 @@ Status JniConnector::_fill_column(ColumnPtr& doris_column, DataTypePtr& data_typ
|
||||
TypeIndex logical_type = remove_nullable(data_type)->get_type_id();
|
||||
void* null_map_ptr = _next_meta_as_ptr();
|
||||
if (null_map_ptr == nullptr) {
|
||||
// org.apache.doris.jni.vec.ColumnType.Type#UNSUPPORTED will set column address as 0
|
||||
// org.apache.doris.common.jni.vec.ColumnType.Type#UNSUPPORTED will set column address as 0
|
||||
return Status::InternalError("Unsupported type {} in java side", getTypeName(logical_type));
|
||||
}
|
||||
MutableColumnPtr data_column;
|
||||
|
||||
@ -55,13 +55,13 @@ struct Decimal;
|
||||
namespace doris::vectorized {
|
||||
|
||||
/**
|
||||
* Connector to java jni scanner, which should extend org.apache.doris.jni.JniScanner
|
||||
* Connector to java jni scanner, which should extend org.apache.doris.common.jni.JniScanner
|
||||
*/
|
||||
class JniConnector {
|
||||
public:
|
||||
/**
|
||||
* The predicates that can be pushed down to java side.
|
||||
* Reference to java class org.apache.doris.jni.vec.ScanPredicate
|
||||
* Reference to java class org.apache.doris.common.jni.vec.ScanPredicate
|
||||
*/
|
||||
template <typename CppType>
|
||||
struct ScanPredicate {
|
||||
@ -102,7 +102,7 @@ public:
|
||||
/**
|
||||
* The value ranges can be stored as byte array as following format:
|
||||
* number_filters(4) | length(4) | column_name | op(4) | scale(4) | num_values(4) | value_length(4) | value | ...
|
||||
* The read method is implemented in org.apache.doris.jni.vec.ScanPredicate#parseScanPredicates
|
||||
* The read method is implemented in org.apache.doris.common.jni.vec.ScanPredicate#parseScanPredicates
|
||||
*/
|
||||
int write(std::unique_ptr<char[]>& predicates, int origin_length) {
|
||||
int num_filters = 0;
|
||||
@ -232,7 +232,7 @@ private:
|
||||
std::unique_ptr<char[]> _predicates = nullptr;
|
||||
|
||||
/**
|
||||
* Set the address of meta information, which is returned by org.apache.doris.jni.JniScanner#getNextBatchMeta
|
||||
* Set the address of meta information, which is returned by org.apache.doris.common.jni.JniScanner#getNextBatchMeta
|
||||
*/
|
||||
void _set_meta(long meta_addr) {
|
||||
_meta_ptr = static_cast<long*>(reinterpret_cast<void*>(meta_addr));
|
||||
|
||||
@ -58,8 +58,8 @@ MockJniReader::MockJniReader(const std::vector<SlotDescriptor*>& file_slot_descs
|
||||
std::map<String, String> params = {{"mock_rows", "10240"},
|
||||
{"required_fields", required_fields.str()},
|
||||
{"columns_types", columns_types.str()}};
|
||||
_jni_connector = std::make_unique<JniConnector>("org/apache/doris/jni/MockJniScanner", params,
|
||||
column_names);
|
||||
_jni_connector = std::make_unique<JniConnector>("org/apache/doris/common/jni/MockJniScanner",
|
||||
params, column_names);
|
||||
}
|
||||
|
||||
Status MockJniReader::get_next_block(Block* block, size_t* read_rows, bool* eof) {
|
||||
|
||||
@ -70,8 +70,8 @@ MaxComputeJniReader::MaxComputeJniReader(const MaxComputeTableDescriptor* mc_des
|
||||
{"split_size", std::to_string(_range.size)},
|
||||
{"required_fields", required_fields.str()},
|
||||
{"columns_types", columns_types.str()}};
|
||||
_jni_connector = std::make_unique<JniConnector>("org/apache/doris/jni/MaxComputeJniScanner",
|
||||
params, column_names);
|
||||
_jni_connector = std::make_unique<JniConnector>(
|
||||
"org/apache/doris/maxcompute/MaxComputeJniScanner", params, column_names);
|
||||
}
|
||||
|
||||
Status MaxComputeJniReader::get_next_block(Block* block, size_t* read_rows, bool* eof) {
|
||||
|
||||
@ -55,8 +55,8 @@ PaimonJniReader::PaimonJniReader(const std::vector<SlotDescriptor*>& file_slot_d
|
||||
params["length_byte"] = range.table_format_params.paimon_params.length_byte;
|
||||
params["split_byte"] =
|
||||
std::to_string((int64_t)range.table_format_params.paimon_params.paimon_split.data());
|
||||
_jni_connector = std::make_unique<JniConnector>("org/apache/doris/jni/PaimonJniScanner", params,
|
||||
column_names);
|
||||
_jni_connector = std::make_unique<JniConnector>("org/apache/doris/paimon/PaimonJniScanner",
|
||||
params, column_names);
|
||||
}
|
||||
|
||||
Status PaimonJniReader::get_next_block(Block* block, size_t* read_rows, bool* eof) {
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
|
||||
namespace doris {
|
||||
namespace vectorized {
|
||||
const char* JDBC_EXECUTOR_CLASS = "org/apache/doris/udf/JdbcExecutor";
|
||||
const char* JDBC_EXECUTOR_CLASS = "org/apache/doris/jdbc/JdbcExecutor";
|
||||
const char* JDBC_EXECUTOR_CTOR_SIGNATURE = "([B)V";
|
||||
const char* JDBC_EXECUTOR_WRITE_SIGNATURE = "(Ljava/lang/String;)I";
|
||||
const char* JDBC_EXECUTOR_STMT_WRITE_SIGNATURE = "(Ljava/util/Map;)I";
|
||||
|
||||
96
build.sh
96
build.sh
@ -38,23 +38,23 @@ usage() {
|
||||
echo "
|
||||
Usage: $0 <options>
|
||||
Optional options:
|
||||
[no option] build all components
|
||||
--fe build Frontend and Spark DPP application. Default ON.
|
||||
--be build Backend. Default ON.
|
||||
--meta-tool build Backend meta tool. Default OFF.
|
||||
--broker build Broker. Default ON.
|
||||
--audit build audit loader. Default ON.
|
||||
--spark-dpp build Spark DPP application. Default ON.
|
||||
--hive-udf build Hive UDF library for Spark Load. Default ON.
|
||||
--java-udf build Java UDF. Default ON.
|
||||
--clean clean and build target
|
||||
--output specify the output directory
|
||||
-j build Backend parallel
|
||||
[no option] build all components
|
||||
--fe build Frontend and Spark DPP application. Default ON.
|
||||
--be build Backend. Default ON.
|
||||
--meta-tool build Backend meta tool. Default OFF.
|
||||
--broker build Broker. Default ON.
|
||||
--audit build audit loader. Default ON.
|
||||
--spark-dpp build Spark DPP application. Default ON.
|
||||
--hive-udf build Hive UDF library for Spark Load. Default ON.
|
||||
--be-java-extensions build Backend java extensions. Default ON.
|
||||
--clean clean and build target
|
||||
--output specify the output directory
|
||||
-j build Backend parallel
|
||||
|
||||
Environment variables:
|
||||
USE_AVX2 If the CPU does not support AVX2 instruction set, please set USE_AVX2=0. Default is ON.
|
||||
STRIP_DEBUG_INFO If set STRIP_DEBUG_INFO=ON, the debug information in the compiled binaries will be stored separately in the 'be/lib/debug_info' directory. Default is OFF.
|
||||
DISABLE_JAVA_UDF If set DISABLE_JAVA_UDF=ON, we will do not build binary with java-udf. Default is OFF.
|
||||
DISABLE_BE_JAVA_EXTENSIONS If set DISABLE_BE_JAVA_EXTENSIONS=ON, we will do not build binary with java-udf,hudi-scanner,jdbc-scanner and so on Default is OFF.
|
||||
DISABLE_JAVA_CHECK_STYLE If set DISABLE_JAVA_CHECK_STYLE=ON, it will skip style check of java code in FE.
|
||||
Eg.
|
||||
$0 build all
|
||||
@ -119,7 +119,7 @@ if ! OPTS="$(getopt \
|
||||
-l 'meta-tool' \
|
||||
-l 'spark-dpp' \
|
||||
-l 'hive-udf' \
|
||||
-l 'java-udf' \
|
||||
-l 'be-java-extensions' \
|
||||
-l 'clean' \
|
||||
-l 'coverage' \
|
||||
-l 'help' \
|
||||
@ -138,7 +138,7 @@ BUILD_BROKER=0
|
||||
BUILD_AUDIT=0
|
||||
BUILD_META_TOOL='OFF'
|
||||
BUILD_SPARK_DPP=0
|
||||
BUILD_JAVA_UDF=0
|
||||
BUILD_BE_JAVA_EXTENSIONS=0
|
||||
BUILD_HIVE_UDF=0
|
||||
CLEAN=0
|
||||
HELP=0
|
||||
@ -154,7 +154,7 @@ if [[ "$#" == 1 ]]; then
|
||||
BUILD_META_TOOL='OFF'
|
||||
BUILD_SPARK_DPP=1
|
||||
BUILD_HIVE_UDF=1
|
||||
BUILD_JAVA_UDF=1
|
||||
BUILD_BE_JAVA_EXTENSIONS=1
|
||||
CLEAN=0
|
||||
else
|
||||
while true; do
|
||||
@ -163,12 +163,12 @@ else
|
||||
BUILD_FE=1
|
||||
BUILD_SPARK_DPP=1
|
||||
BUILD_HIVE_UDF=1
|
||||
BUILD_JAVA_UDF=1
|
||||
BUILD_BE_JAVA_EXTENSIONS=1
|
||||
shift
|
||||
;;
|
||||
--be)
|
||||
BUILD_BE=1
|
||||
BUILD_JAVA_UDF=1
|
||||
BUILD_BE_JAVA_EXTENSIONS=1
|
||||
shift
|
||||
;;
|
||||
--broker)
|
||||
@ -191,8 +191,8 @@ else
|
||||
BUILD_HIVE_UDF=1
|
||||
shift
|
||||
;;
|
||||
--java-udf)
|
||||
BUILD_JAVA_UDF=1
|
||||
--be-java-extensions)
|
||||
BUILD_BE_JAVA_EXTENSIONS=1
|
||||
shift
|
||||
;;
|
||||
--clean)
|
||||
@ -239,7 +239,7 @@ else
|
||||
BUILD_META_TOOL='ON'
|
||||
BUILD_SPARK_DPP=1
|
||||
BUILD_HIVE_UDF=1
|
||||
BUILD_JAVA_UDF=1
|
||||
BUILD_BE_JAVA_EXTENSIONS=1
|
||||
CLEAN=0
|
||||
fi
|
||||
fi
|
||||
@ -343,8 +343,8 @@ if [[ -z "${OUTPUT_BE_BINARY}" ]]; then
|
||||
OUTPUT_BE_BINARY=${BUILD_BE}
|
||||
fi
|
||||
|
||||
if [[ -z "${DISABLE_JAVA_UDF}" ]]; then
|
||||
DISABLE_JAVA_UDF='OFF'
|
||||
if [[ -z "${BUILD_BE_JAVA_EXTENSIONS}" ]]; then
|
||||
BUILD_BE_JAVA_EXTENSIONS='OFF'
|
||||
fi
|
||||
|
||||
if [[ -z "${DISABLE_JAVA_CHECK_STYLE}" ]]; then
|
||||
@ -355,7 +355,7 @@ if [[ -z "${RECORD_COMPILER_SWITCHES}" ]]; then
|
||||
RECORD_COMPILER_SWITCHES='OFF'
|
||||
fi
|
||||
|
||||
if [[ "${BUILD_JAVA_UDF}" -eq 1 && "$(uname -s)" == 'Darwin' ]]; then
|
||||
if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && "$(uname -s)" == 'Darwin' ]]; then
|
||||
if [[ -z "${JAVA_HOME}" ]]; then
|
||||
CAUSE='the environment variable JAVA_HOME is not set'
|
||||
else
|
||||
@ -369,13 +369,13 @@ if [[ "${BUILD_JAVA_UDF}" -eq 1 && "$(uname -s)" == 'Darwin' ]]; then
|
||||
|
||||
if [[ -n "${CAUSE}" ]]; then
|
||||
echo -e "\033[33;1mWARNNING: \033[37;1mSkip building with Java UDF due to ${CAUSE}.\033[0m"
|
||||
BUILD_JAVA_UDF=0
|
||||
DISABLE_JAVA_UDF_IN_CONF=1
|
||||
BUILD_BE_JAVA_EXTENSIONS=0
|
||||
BUILD_BE_JAVA_EXTENSIONS_IN_CONF=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${DISABLE_JAVA_UDF}" == "ON" ]]; then
|
||||
BUILD_JAVA_UDF=0
|
||||
if [[ "${BUILD_BE_JAVA_EXTENSIONS}" == "ON" ]]; then
|
||||
BUILD_BE_JAVA_EXTENSIONS=0
|
||||
fi
|
||||
|
||||
echo "Get params:
|
||||
@ -385,7 +385,7 @@ echo "Get params:
|
||||
BUILD_AUDIT -- ${BUILD_AUDIT}
|
||||
BUILD_META_TOOL -- ${BUILD_META_TOOL}
|
||||
BUILD_SPARK_DPP -- ${BUILD_SPARK_DPP}
|
||||
BUILD_JAVA_UDF -- ${BUILD_JAVA_UDF}
|
||||
BUILD_BE_JAVA_EXTENSIONS -- ${BUILD_BE_JAVA_EXTENSIONS}
|
||||
BUILD_HIVE_UDF -- ${BUILD_HIVE_UDF}
|
||||
PARALLEL -- ${PARALLEL}
|
||||
CLEAN -- ${CLEAN}
|
||||
@ -424,14 +424,19 @@ if [[ "${BUILD_SPARK_DPP}" -eq 1 ]]; then
|
||||
modules+=("fe-common")
|
||||
modules+=("spark-dpp")
|
||||
fi
|
||||
if [[ "${BUILD_JAVA_UDF}" -eq 1 ]]; then
|
||||
modules+=("fe-common")
|
||||
modules+=("java-udf")
|
||||
fi
|
||||
if [[ "${BUILD_HIVE_UDF}" -eq 1 ]]; then
|
||||
modules+=("fe-common")
|
||||
modules+=("hive-udf")
|
||||
fi
|
||||
if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 ]]; then
|
||||
modules+=("fe-common")
|
||||
modules+=("be-java-extensions/hudi-scanner")
|
||||
modules+=("be-java-extensions/java-common")
|
||||
modules+=("be-java-extensions/java-udf")
|
||||
modules+=("be-java-extensions/jdbc-scanner")
|
||||
modules+=("be-java-extensions/paimon-scanner")
|
||||
modules+=("be-java-extensions/max-compute-scanner")
|
||||
fi
|
||||
FE_MODULES="$(
|
||||
IFS=','
|
||||
echo "${modules[*]}"
|
||||
@ -596,11 +601,11 @@ if [[ "${OUTPUT_BE_BINARY}" -eq 1 ]]; then
|
||||
rm -rf "${DORIS_OUTPUT}/be/lib/hadoop_hdfs/native/"
|
||||
fi
|
||||
|
||||
if [[ "${DISABLE_JAVA_UDF_IN_CONF}" -eq 1 ]]; then
|
||||
if [[ "${BUILD_BE_JAVA_EXTENSIONS_IN_CONF}" -eq 1 ]]; then
|
||||
echo -e "\033[33;1mWARNNING: \033[37;1mDisable Java UDF support in be.conf due to the BE was built without Java UDF.\033[0m"
|
||||
cat >>"${DORIS_OUTPUT}/be/conf/be.conf" <<EOF
|
||||
|
||||
# Java UDF support
|
||||
# Java UDF and BE-JAVA-EXTENSION support
|
||||
enable_java_support = false
|
||||
EOF
|
||||
fi
|
||||
@ -627,10 +632,19 @@ EOF
|
||||
cp -r -p "${DORIS_HOME}/be/output/lib/debug_info" "${DORIS_OUTPUT}/be/lib"/
|
||||
fi
|
||||
|
||||
java_udf_path="${DORIS_HOME}/fe/java-udf/target/java-udf-jar-with-dependencies.jar"
|
||||
if [[ -f "${java_udf_path}" ]]; then
|
||||
cp "${java_udf_path}" "${DORIS_OUTPUT}/be/lib"/
|
||||
fi
|
||||
extensions_modules=("")
|
||||
extensions_modules+=("java-udf")
|
||||
extensions_modules+=("jdbc-scanner")
|
||||
extensions_modules+=("hudi-scanner")
|
||||
extensions_modules+=("paimon-scanner")
|
||||
extensions_modules+=("max-compute-scanner")
|
||||
|
||||
for extensions_module in "${extensions_modules[@]}"; do
|
||||
module_path="${DORIS_HOME}/fe/be-java-extensions/${extensions_module}/target/${extensions_module}-jar-with-dependencies.jar"
|
||||
if [[ -f "${module_path}" ]]; then
|
||||
cp "${module_path}" "${DORIS_OUTPUT}/be/lib"/
|
||||
fi
|
||||
done
|
||||
|
||||
cp -r -p "${DORIS_THIRDPARTY}/installed/webroot"/* "${DORIS_OUTPUT}/be/www"/
|
||||
copy_common_files "${DORIS_OUTPUT}/be/"
|
||||
@ -659,12 +673,12 @@ if [[ "${BUILD_AUDIT}" -eq 1 ]]; then
|
||||
cd "${DORIS_HOME}"
|
||||
fi
|
||||
|
||||
if [[ "${BUILD_JAVA_UDF}" -eq 1 && "${BUILD_BE}" -eq 0 && "${BUILD_FE}" -eq 0 ]]; then
|
||||
if [[ "${BUILD_BE_JAVA_EXTENSIONS}" -eq 1 && "${BUILD_BE}" -eq 0 && "${BUILD_FE}" -eq 0 ]]; then
|
||||
install -d "${DORIS_OUTPUT}/be/lib"
|
||||
|
||||
rm -rf "${DORIS_OUTPUT}/be/lib/java-udf-jar-with-dependencies.jar"
|
||||
|
||||
java_udf_path="${DORIS_HOME}/fe/java-udf/target/java-udf-jar-with-dependencies.jar"
|
||||
java_udf_path="${DORIS_HOME}/fe/be-java-extensions/java-udf/target/java-udf-jar-with-dependencies.jar"
|
||||
if [[ -f "${java_udf_path}" ]]; then
|
||||
cp "${java_udf_path}" "${DORIS_OUTPUT}/be/lib"/
|
||||
fi
|
||||
|
||||
@ -19,105 +19,26 @@ under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
<artifactId>fe</artifactId>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>java-udf</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>hudi-scanner</artifactId>
|
||||
|
||||
<properties>
|
||||
<doris.home>${basedir}/../../</doris.home>
|
||||
<fe_ut_parallel>1</fe_ut_parallel>
|
||||
<presto.hadoop.version>2.7.4-11</presto.hadoop.version>
|
||||
<presto.hive.version>3.0.0-8</presto.hive.version>
|
||||
<paimon.version>0.4-SNAPSHOT</paimon.version>
|
||||
<hudi.version>0.13.0</hudi.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.vesoft</groupId>
|
||||
<artifactId>client</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.paimon</groupId>
|
||||
<artifactId>paimon-bundle</artifactId>
|
||||
<version>${paimon.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.paimon</groupId>
|
||||
<artifactId>paimon-hive-connector-2.3</artifactId>
|
||||
<version>${paimon.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>hive-common</artifactId>
|
||||
<groupId>org.apache.hive</groupId>
|
||||
<version>2.3.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity-engine-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.jdbc</groupId>
|
||||
<artifactId>ojdbc6</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.clickhouse</groupId>
|
||||
<artifactId>clickhouse-jdbc</artifactId>
|
||||
<classifier>all</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun.odps</groupId>
|
||||
<artifactId>odps-sdk-core</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-core-asl</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-mapper-asl</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.arrow</groupId>
|
||||
<artifactId>arrow-vector</artifactId>
|
||||
<version>9.0.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.arrow</groupId>
|
||||
<artifactId>arrow-memory-unsafe</artifactId>
|
||||
<version>9.0.0</version>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>java-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.hudi</groupId>
|
||||
<artifactId>hudi-hadoop-mr-bundle</artifactId>
|
||||
@ -167,16 +88,14 @@ under the License.
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- conflict with hudi-*-bundle -->
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>fe-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- conflict with hudi-*-bundle -->
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>java-udf</finalName>
|
||||
<finalName>hudi-scanner</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
@ -17,7 +17,8 @@
|
||||
|
||||
package org.apache.doris.hudi;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
|
||||
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
|
||||
@ -17,9 +17,9 @@
|
||||
|
||||
package org.apache.doris.hudi;
|
||||
|
||||
import org.apache.doris.jni.JniScanner;
|
||||
import org.apache.doris.jni.utils.Utils;
|
||||
import org.apache.doris.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.doris.common.jni.JniScanner;
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.hadoop.fs.Path;
|
||||
import org.apache.hadoop.hive.serde2.Deserializer;
|
||||
@ -163,7 +163,8 @@ public class HudiJniScanner extends JniScanner {
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
if (!isKilled.get()) {
|
||||
synchronized (HudiJniScanner.class) {
|
||||
List<Long> pids = Utils.getChildProcessIds(Utils.getCurrentProcId());
|
||||
List<Long> pids = Utils.getChildProcessIds(
|
||||
Utils.getCurrentProcId());
|
||||
for (long pid : pids) {
|
||||
String cmd = Utils.getCommandLine(pid);
|
||||
if (cmd != null && cmd.contains("org.openjdk.jol.vm.sa.AttachMain")) {
|
||||
@ -17,7 +17,8 @@
|
||||
|
||||
package org.apache.doris.hudi;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.hadoop.hive.serde.serdeConstants;
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.utils;
|
||||
package org.apache.doris.hudi;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.hadoop.conf.Configuration;
|
||||
60
fe/be-java-extensions/java-common/pom.xml
Normal file
60
fe/be-java-extensions/java-common/pom.xml
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>java-common</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.vesoft</groupId>
|
||||
<artifactId>client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>fe-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
<artifactId>velocity-engine-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.exception;
|
||||
|
||||
public class InternalException extends Exception {
|
||||
public InternalException(String msg, Throwable cause) {
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.exception;
|
||||
|
||||
public class UdfRuntimeException extends Exception {
|
||||
public UdfRuntimeException(String msg, Throwable cause) {
|
||||
@ -15,12 +15,13 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni;
|
||||
package org.apache.doris.common.jni;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
import org.apache.doris.jni.vec.ColumnValue;
|
||||
import org.apache.doris.jni.vec.ScanPredicate;
|
||||
import org.apache.doris.jni.vec.VectorTable;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
import org.apache.doris.common.jni.vec.ScanPredicate;
|
||||
import org.apache.doris.common.jni.vec.VectorTable;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@ -15,11 +15,12 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni;
|
||||
package org.apache.doris.common.jni;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
import org.apache.doris.jni.vec.ColumnValue;
|
||||
import org.apache.doris.jni.vec.ScanPredicate;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
import org.apache.doris.common.jni.vec.ScanPredicate;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
// https://github.com/apache/impala/blob/branch-4.0.0/fe/src/main/java/org/apache/impala/util/JMXJsonUtil.java
|
||||
// and modified by Doris
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonFactory;
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
/**
|
||||
* Native method in doris::JavaNativeMethods.
|
||||
@ -15,8 +15,9 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import org.apache.doris.common.exception.InternalException;
|
||||
import org.apache.doris.thrift.TGetJMXJsonResponse;
|
||||
import org.apache.doris.thrift.TGetJvmMemoryMetricsResponse;
|
||||
import org.apache.doris.thrift.TGetJvmThreadsInfoRequest;
|
||||
@ -18,7 +18,7 @@
|
||||
// https://github.com/apache/impala/blob/branch-4.0.0/fe/src/main/java/org/apache/impala/util/JvmPauseMonitor.java
|
||||
// and modified by Doris
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.base.Stopwatch;
|
||||
@ -15,9 +15,8 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.utils;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import org.apache.doris.udf.JNINativeMethod;
|
||||
|
||||
import sun.misc.Unsafe;
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.utils;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
@ -15,13 +15,14 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.common.jni.utils;
|
||||
|
||||
import org.apache.doris.catalog.ArrayType;
|
||||
import org.apache.doris.catalog.PrimitiveType;
|
||||
import org.apache.doris.catalog.ScalarType;
|
||||
import org.apache.doris.catalog.Type;
|
||||
import org.apache.doris.common.Pair;
|
||||
import org.apache.doris.common.exception.InternalException;
|
||||
import org.apache.doris.thrift.TPrimitiveType;
|
||||
import org.apache.doris.thrift.TScalarType;
|
||||
import org.apache.doris.thrift.TTypeDesc;
|
||||
@ -193,7 +194,7 @@ public class UdfUtils {
|
||||
}
|
||||
}
|
||||
|
||||
protected static Pair<Type, Integer> fromThrift(TTypeDesc typeDesc, int nodeIdx) throws InternalException {
|
||||
public static Pair<Type, Integer> fromThrift(TTypeDesc typeDesc, int nodeIdx) throws InternalException {
|
||||
TTypeNode node = typeDesc.getTypes().get(nodeIdx);
|
||||
Type type = null;
|
||||
switch (node.getType()) {
|
||||
@ -238,7 +239,7 @@ public class UdfUtils {
|
||||
return Pair.of(type, nodeIdx);
|
||||
}
|
||||
|
||||
protected static long getAddressAtOffset(long base, int offset) {
|
||||
public static long getAddressAtOffset(long base, int offset) {
|
||||
return base + 8L * offset;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.common.jni.vec;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.common.jni.vec;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
@ -15,11 +15,12 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.common.jni.vec;
|
||||
|
||||
import org.apache.doris.jni.utils.OffHeap;
|
||||
import org.apache.doris.jni.utils.TypeNativeBytes;
|
||||
import org.apache.doris.jni.vec.ColumnType.Type;
|
||||
|
||||
import org.apache.doris.common.jni.utils.OffHeap;
|
||||
import org.apache.doris.common.jni.utils.TypeNativeBytes;
|
||||
import org.apache.doris.common.jni.vec.ColumnType.Type;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@ -15,11 +15,12 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.common.jni.vec;
|
||||
|
||||
import org.apache.doris.jni.utils.OffHeap;
|
||||
import org.apache.doris.jni.utils.TypeNativeBytes;
|
||||
import org.apache.doris.jni.vec.ColumnType.Type;
|
||||
|
||||
import org.apache.doris.common.jni.utils.OffHeap;
|
||||
import org.apache.doris.common.jni.utils.TypeNativeBytes;
|
||||
import org.apache.doris.common.jni.vec.ColumnType.Type;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
@ -15,10 +15,11 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.common.jni.vec;
|
||||
|
||||
import org.apache.doris.jni.utils.OffHeap;
|
||||
import org.apache.doris.jni.vec.ColumnType.Type;
|
||||
|
||||
import org.apache.doris.common.jni.utils.OffHeap;
|
||||
import org.apache.doris.common.jni.vec.ColumnType.Type;
|
||||
|
||||
/**
|
||||
* Store a batch of data as vector table.
|
||||
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
<id>jar-with-dependencies</id>
|
||||
<formats>
|
||||
<format>jar</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>true</useProjectArtifact>
|
||||
<unpack>true</unpack>
|
||||
<scope>runtime</scope>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>**/Log4j2Plugins.dat</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
||||
@ -15,10 +15,11 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni;
|
||||
package org.apache.doris.common.jni;
|
||||
|
||||
import org.apache.doris.jni.utils.OffHeap;
|
||||
import org.apache.doris.jni.vec.VectorTable;
|
||||
|
||||
import org.apache.doris.common.jni.utils.OffHeap;
|
||||
import org.apache.doris.common.jni.vec.VectorTable;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
74
fe/be-java-extensions/java-udf/pom.xml
Normal file
74
fe/be-java-extensions/java-udf/pom.xml
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>java-udf</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>java-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>java-udf</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>src/main/resources/package.xml</descriptor>
|
||||
</descriptors>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass></mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@ -19,8 +19,11 @@ package org.apache.doris.udf;
|
||||
|
||||
import org.apache.doris.catalog.PrimitiveType;
|
||||
import org.apache.doris.catalog.Type;
|
||||
import org.apache.doris.common.exception.InternalException;
|
||||
import org.apache.doris.common.exception.UdfRuntimeException;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils.JavaUdfDataType;
|
||||
import org.apache.doris.thrift.TJavaUdfExecutorCtorParams;
|
||||
import org.apache.doris.udf.UdfUtils.JavaUdfDataType;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.thrift.TDeserializer;
|
||||
@ -19,8 +19,10 @@ package org.apache.doris.udf;
|
||||
|
||||
import org.apache.doris.catalog.Type;
|
||||
import org.apache.doris.common.Pair;
|
||||
import org.apache.doris.common.exception.UdfRuntimeException;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils.JavaUdfDataType;
|
||||
import org.apache.doris.thrift.TJavaUdfExecutorCtorParams;
|
||||
import org.apache.doris.udf.UdfUtils.JavaUdfDataType;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Lists;
|
||||
@ -19,8 +19,10 @@ package org.apache.doris.udf;
|
||||
|
||||
import org.apache.doris.catalog.Type;
|
||||
import org.apache.doris.common.Pair;
|
||||
import org.apache.doris.common.exception.UdfRuntimeException;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils.JavaUdfDataType;
|
||||
import org.apache.doris.thrift.TJavaUdfExecutorCtorParams;
|
||||
import org.apache.doris.udf.UdfUtils.JavaUdfDataType;
|
||||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Lists;
|
||||
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
<id>jar-with-dependencies</id>
|
||||
<formats>
|
||||
<format>jar</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>true</useProjectArtifact>
|
||||
<unpack>true</unpack>
|
||||
<scope>runtime</scope>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>**/Log4j2Plugins.dat</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
||||
@ -17,6 +17,7 @@
|
||||
|
||||
package org.apache.doris.udf;
|
||||
|
||||
import org.apache.doris.common.jni.utils.UdfUtils;
|
||||
import org.apache.doris.thrift.TFunction;
|
||||
import org.apache.doris.thrift.TFunctionBinaryType;
|
||||
import org.apache.doris.thrift.TFunctionName;
|
||||
90
fe/be-java-extensions/jdbc-scanner/pom.xml
Normal file
90
fe/be-java-extensions/jdbc-scanner/pom.xml
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>jdbc-scanner</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>java-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
|
||||
<dependency>
|
||||
<groupId>com.oracle.database.jdbc</groupId>
|
||||
<artifactId>ojdbc6</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.clickhouse</groupId>
|
||||
<artifactId>clickhouse-jdbc</artifactId>
|
||||
<classifier>all</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>jdbc-scanner</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>src/main/resources/package.xml</descriptor>
|
||||
</descriptors>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass></mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@ -15,7 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.jdbc;
|
||||
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
|
||||
@ -15,11 +15,15 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.udf;
|
||||
package org.apache.doris.jdbc;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
import org.apache.doris.jni.vec.VectorColumn;
|
||||
import org.apache.doris.jni.vec.VectorTable;
|
||||
import org.apache.doris.common.exception.InternalException;
|
||||
import org.apache.doris.common.exception.UdfRuntimeException;
|
||||
import org.apache.doris.common.jni.utils.JNINativeMethod;
|
||||
import org.apache.doris.common.jni.utils.UdfUtils;
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
import org.apache.doris.common.jni.vec.VectorColumn;
|
||||
import org.apache.doris.common.jni.vec.VectorTable;
|
||||
import org.apache.doris.thrift.TJdbcExecutorCtorParams;
|
||||
import org.apache.doris.thrift.TJdbcOperation;
|
||||
import org.apache.doris.thrift.TOdbcTableType;
|
||||
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
<id>jar-with-dependencies</id>
|
||||
<formats>
|
||||
<format>jar</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>true</useProjectArtifact>
|
||||
<unpack>true</unpack>
|
||||
<scope>runtime</scope>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>**/Log4j2Plugins.dat</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
||||
104
fe/be-java-extensions/max-compute-scanner/pom.xml
Normal file
104
fe/be-java-extensions/max-compute-scanner/pom.xml
Normal file
@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>max-compute-scanner</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>java-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun.odps</groupId>
|
||||
<artifactId>odps-sdk-core</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-core-asl</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-mapper-asl</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.arrow</groupId>
|
||||
<artifactId>arrow-vector</artifactId>
|
||||
<version>${arrow.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.arrow</groupId>
|
||||
<artifactId>arrow-memory-unsafe</artifactId>
|
||||
<version>${arrow.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>max-compute-scanner</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>src/main/resources/package.xml</descriptor>
|
||||
</descriptors>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass></mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@ -15,7 +15,9 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.maxcompute;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.arrow.vector.BigIntVector;
|
||||
import org.apache.arrow.vector.DateDayVector;
|
||||
@ -15,11 +15,11 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni;
|
||||
package org.apache.doris.maxcompute;
|
||||
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
import org.apache.doris.jni.vec.MaxComputeColumnValue;
|
||||
import org.apache.doris.jni.vec.ScanPredicate;
|
||||
import org.apache.doris.common.jni.JniScanner;
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
import org.apache.doris.common.jni.vec.ScanPredicate;
|
||||
|
||||
import com.aliyun.odps.Column;
|
||||
import com.aliyun.odps.Odps;
|
||||
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
<id>jar-with-dependencies</id>
|
||||
<formats>
|
||||
<format>jar</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>true</useProjectArtifact>
|
||||
<unpack>true</unpack>
|
||||
<scope>runtime</scope>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>**/Log4j2Plugins.dat</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
||||
100
fe/be-java-extensions/paimon-scanner/pom.xml
Normal file
100
fe/be-java-extensions/paimon-scanner/pom.xml
Normal file
@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>paimon-scanner</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<artifactId>java-common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>hive-common</artifactId>
|
||||
<groupId>org.apache.hive</groupId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.paimon</groupId>
|
||||
<artifactId>paimon-bundle</artifactId>
|
||||
<version>${paimon.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.paimon</groupId>
|
||||
<artifactId>paimon-hive-connector-2.3</artifactId>
|
||||
<version>${paimon.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-mapreduce-client-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-mapreduce-client-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>paimon-scanner</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>src/main/resources/package.xml</descriptor>
|
||||
</descriptors>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass></mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@ -15,7 +15,9 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni.vec;
|
||||
package org.apache.doris.paimon;
|
||||
|
||||
import org.apache.doris.common.jni.vec.ColumnValue;
|
||||
|
||||
import org.apache.paimon.data.columnar.ColumnarRow;
|
||||
|
||||
@ -15,12 +15,12 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.jni;
|
||||
package org.apache.doris.paimon;
|
||||
|
||||
import org.apache.doris.jni.utils.OffHeap;
|
||||
import org.apache.doris.jni.vec.ColumnType;
|
||||
import org.apache.doris.jni.vec.PaimonColumnValue;
|
||||
import org.apache.doris.jni.vec.ScanPredicate;
|
||||
import org.apache.doris.common.jni.JniScanner;
|
||||
import org.apache.doris.common.jni.utils.OffHeap;
|
||||
import org.apache.doris.common.jni.vec.ColumnType;
|
||||
import org.apache.doris.common.jni.vec.ScanPredicate;
|
||||
|
||||
import org.apache.hadoop.hive.conf.HiveConf;
|
||||
import org.apache.log4j.Logger;
|
||||
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
|
||||
<id>jar-with-dependencies</id>
|
||||
<formats>
|
||||
<format>jar</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useProjectArtifact>true</useProjectArtifact>
|
||||
<unpack>true</unpack>
|
||||
<scope>runtime</scope>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>**/Log4j2Plugins.dat</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
</assembly>
|
||||
46
fe/be-java-extensions/pom.xml
Normal file
46
fe/be-java-extensions/pom.xml
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<modules>
|
||||
<module>hudi-scanner</module>
|
||||
<module>java-common</module>
|
||||
<module>java-udf</module>
|
||||
<module>jdbc-scanner</module>
|
||||
<module>paimon-scanner</module>
|
||||
<module>max-compute-scanner</module>
|
||||
</modules>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.doris</groupId>
|
||||
<version>${revision}</version>
|
||||
<artifactId>fe</artifactId>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>be-java-extensions</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<properties>
|
||||
<doris.home>${basedir}/../../</doris.home>
|
||||
<fe_ut_parallel>1</fe_ut_parallel>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
@ -34,7 +34,6 @@ under the License.
|
||||
<fe_ut_parallel>1</fe_ut_parallel>
|
||||
<antlr4.version>4.9.3</antlr4.version>
|
||||
<awssdk.version>2.17.257</awssdk.version>
|
||||
<paimon.version>0.4-SNAPSHOT</paimon.version>
|
||||
</properties>
|
||||
<profiles>
|
||||
<profile>
|
||||
@ -499,6 +498,10 @@ under the License.
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-hdfs</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-auth</artifactId>
|
||||
|
||||
49
fe/pom.xml
49
fe/pom.xml
@ -186,7 +186,7 @@ under the License.
|
||||
<module>spark-dpp</module>
|
||||
<module>fe-core</module>
|
||||
<module>hive-udf</module>
|
||||
<module>java-udf</module>
|
||||
<module>be-java-extensions</module>
|
||||
</modules>
|
||||
<properties>
|
||||
<!--suppress UnresolvedMavenProperty -->
|
||||
@ -263,6 +263,8 @@ under the License.
|
||||
<RoaringBitmap.version>0.8.13</RoaringBitmap.version>
|
||||
<spark.version>2.4.6</spark.version>
|
||||
<hive.version>3.1.3</hive.version>
|
||||
<hive.common.version>2.3.9</hive.common.version>
|
||||
<mapreduce.client.version>2.10.1</mapreduce.client.version>
|
||||
<calcite.version>1.33.0</calcite.version>
|
||||
<avatica.version>1.22.0</avatica.version>
|
||||
<!-- ATTN: avro version must be consistent with Iceberg version -->
|
||||
@ -270,9 +272,13 @@ under the License.
|
||||
you can find avro version info in iceberg mvn repository -->
|
||||
<iceberg.version>1.1.0</iceberg.version>
|
||||
<maxcompute.version>0.43.3-public</maxcompute.version>
|
||||
<arrow.version>9.0.0</arrow.version>
|
||||
<avro.version>1.11.1</avro.version>
|
||||
<!-- hudi -->
|
||||
<hudi.version>0.13.0</hudi.version>
|
||||
<presto.hadoop.version>2.7.4-11</presto.hadoop.version>
|
||||
<presto.hive.version>3.0.0-8</presto.hive.version>
|
||||
|
||||
<parquet.version>1.13.0</parquet.version>
|
||||
<commons-collections.version>3.2.2</commons-collections.version>
|
||||
<commons-compress.version>1.22</commons-compress.version>
|
||||
@ -299,6 +305,9 @@ under the License.
|
||||
<woodstox.version>6.5.1</woodstox.version>
|
||||
<kerby.version>2.0.3</kerby.version>
|
||||
<jettison.version>1.5.4</jettison.version>
|
||||
<vesoft.client.version>3.0.0</vesoft.client.version>
|
||||
<!-- paimon -->
|
||||
<paimon.version>0.4.0-incubating</paimon.version>
|
||||
</properties>
|
||||
<profiles>
|
||||
<profile>
|
||||
@ -460,6 +469,12 @@ under the License.
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-client</artifactId>
|
||||
<version>${hadoop.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
@ -1090,6 +1105,12 @@ under the License.
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-mapreduce-client</artifactId>
|
||||
<version>${hadoop.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- jettison -->
|
||||
<dependency>
|
||||
@ -1269,6 +1290,27 @@ under the License.
|
||||
<artifactId>metastore-client-hive3</artifactId>
|
||||
<version>${dlf-metastore-client-hive.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hive</groupId>
|
||||
<artifactId>hive-common</artifactId>
|
||||
<version>${hive.common.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-mapreduce-client-core</artifactId>
|
||||
<version>${mapreduce.client.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.hadoop</groupId>
|
||||
<artifactId>hadoop-mapreduce-client-common</artifactId>
|
||||
<version>${mapreduce.client.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
@ -1297,6 +1339,11 @@ under the License.
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
<version>${tomcat-embed-core.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.vesoft</groupId>
|
||||
<artifactId>client</artifactId>
|
||||
<version>${vesoft.client.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
Reference in New Issue
Block a user