Sql server 如何将特定架构的数据从SQL Server 2014(Unicode)导入配置单元仓库
我想从SQL Server导入数据并从配置单元查询它 我使用cloudera模板创建了一个VirtualBox,并开始阅读它的教程 我能够成功地将sqoop作为avro文件从SQL Server导入数据,然后在配置单元中创建表并从avro文件导入数据。然后从蜂巢中查询它 但sqoop的importalltables命令只导入模式为“dbo”的表。 如果我也想导入带有模式Sql server 如何将特定架构的数据从SQL Server 2014(Unicode)导入配置单元仓库,sql-server,hadoop,hive,cloudera,sqoop,Sql Server,Hadoop,Hive,Cloudera,Sqoop,我想从SQL Server导入数据并从配置单元查询它 我使用cloudera模板创建了一个VirtualBox,并开始阅读它的教程 我能够成功地将sqoop作为avro文件从SQL Server导入数据,然后在配置单元中创建表并从avro文件导入数据。然后从蜂巢中查询它 但sqoop的importalltables命令只导入模式为“dbo”的表。 如果我也想导入带有模式dw的表,该怎么办?我试图使用import命令导入dwschema中存在的特定表。但这也不起作用 您知道如何使用sqoop将非d
dw
的表,该怎么办?我试图使用import命令导入dw
schema中存在的特定表。但这也不起作用
您知道如何使用sqoop将非
dbo.
schema相关表作为avro从SQL Server导入数据吗?或者从SQL Server中导入除dbo以外的数据。schema并将其直接加载到hive?下载JDBC驱动程序并将其复制到sqoop目录
$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/
hadoop fs -ls /user/hive/warehouse
ls -l *.avsc
使用sqoop从Sql Server导入表
sqoop import --driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" --connect="jdbc:sqlserver://sqlserver;database=databasename;username=username;password=passwordofuserprovidedinusername" --username=username --password= passwordofuserprovidedinusername --table="schemaname.tablename" --split-by=primarykeyoftable --compression-codec=snappy --as-avrodatafile --warehouse-dir=/user/hive/warehouse/tablename
验证表格是否正确导入
$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/
hadoop fs -ls /user/hive/warehouse
ls -l *.avsc
创建新目录并提供适当的权限
sudo -u hdfs hadoop fs -mkdir /user/examples
sudo -u hdfs hadoop fs -chmod +rw /user/examples
hadoop fs -copyFromLocal ~/*.avsc /user/examples
启动蜂箱
hive
CREATE EXTERNAL TABLE tablename
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/tablename’
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_schemaname_tablename.avsc');
将表架构和数据从sqoop导入到配置单元仓库
hive
CREATE EXTERNAL TABLE tablename
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/tablename’
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_schemaname_tablename.avsc');
注意:确保在键入命令时,如果您正在处理该命令,则单引号可能会更改。路径或文件名中不应该有任何空格。在
avro.schema.url
中,为什么有quickstart.cloudera前缀?是打字错误吗?