/** * 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. */ package org.apache.hadoop.mapred.lib.db; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.mapred.JobConf; @InterfaceAudience.Public @InterfaceStability.Stable public class DBConfiguration extends org.apache.hadoop.mapreduce.lib.db.DBConfiguration { /** The JDBC Driver class name */ public static final String DRIVER_CLASS_PROPERTY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.DRIVER_CLASS_PROPERTY; /** JDBC Database access URL */ public static final String URL_PROPERTY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.URL_PROPERTY; /** User name to access the database */ public static final String USERNAME_PROPERTY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.USERNAME_PROPERTY; /** Password to access the database */ public static final String PASSWORD_PROPERTY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.PASSWORD_PROPERTY; /** Input table name */ public static final String INPUT_TABLE_NAME_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.INPUT_TABLE_NAME_PROPERTY; /** Field names in the Input table */ public static final String INPUT_FIELD_NAMES_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.INPUT_FIELD_NAMES_PROPERTY; /** WHERE clause in the input SELECT statement */ public static final String INPUT_CONDITIONS_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.INPUT_CONDITIONS_PROPERTY; /** ORDER BY clause in the input SELECT statement */ public static final String INPUT_ORDER_BY_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.INPUT_ORDER_BY_PROPERTY; /** Whole input query, exluding LIMIT...OFFSET */ public static final String INPUT_QUERY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_QUERY; /** Input query to get the count of records */ public static final String INPUT_COUNT_QUERY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_COUNT_QUERY; /** Class name implementing DBWritable which will hold input tuples */ public static final String INPUT_CLASS_PROPERTY = org.apache.hadoop.mapreduce.lib.db.DBConfiguration.INPUT_CLASS_PROPERTY; /** Output table name */ public static final String OUTPUT_TABLE_NAME_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.OUTPUT_TABLE_NAME_PROPERTY; /** Field names in the Output table */ public static final String OUTPUT_FIELD_NAMES_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.OUTPUT_FIELD_NAMES_PROPERTY; /** Number of fields in the Output table */ public static final String OUTPUT_FIELD_COUNT_PROPERTY = org.apache.hadoop. mapreduce.lib.db.DBConfiguration.OUTPUT_FIELD_COUNT_PROPERTY; /** * Sets the DB access related fields in the JobConf. * @param job the job * @param driverClass JDBC Driver class name * @param dbUrl JDBC DB access URL. * @param userName DB access username * @param passwd DB access passwd */ public static void configureDB(JobConf job, String driverClass, String dbUrl , String userName, String passwd) { job.set(DRIVER_CLASS_PROPERTY, driverClass); job.set(URL_PROPERTY, dbUrl); if(userName != null) job.set(USERNAME_PROPERTY, userName); if(passwd != null) job.set(PASSWORD_PROPERTY, passwd); } /** * Sets the DB access related fields in the JobConf. * @param job the job * @param driverClass JDBC Driver class name * @param dbUrl JDBC DB access URL. */ public static void configureDB(JobConf job, String driverClass, String dbUrl) { configureDB(job, driverClass, dbUrl, null, null); } DBConfiguration(JobConf job) { super(job); } }