当前位置: 首页 > 知识库问答 >
问题:

为SQL Server 2012企业版搜索JDBC河

萧安怡
2023-03-14

我在使用ElasticSearch River的JDBC驱动程序从SQL Server 2012 enterprise获取数据时遇到问题。

这是我的设置:

  • 操作系统:Windows 2008 R2 X64
  • ES: 1.2.1
  • JDK:jdk-7u60-windows-x64
  • JRE: jre-7u60-windows-x64
  • 适用于SQL服务器的Microsoft JDBC驱动程序4.0

当我运行jdbc将数据输入ES时,我得到了以下异常:

C:\用户\madhavan.ram

看起来MSSQL 4.0驱动程序不支持JDK 1.7。但是如果我把JAVA_Home配置成JDK 1.6..ES在windows上不工作。从SQL Server 2012加载数据到ElasticSearch有没有更好的方法?


共有2个答案

陈飞语
2023-03-14

我假设你已经安装了jdbc插件,如果没有,按照这里的说明:https://github.com/jprante/elasticsearch-river-jdbc实际上你可以在这个页面找到几乎所有你需要设置一条河的东西。

河流被放在一个名为_river的特殊索引中,而不是您的文档索引/订单。

因此,如果你使用Sense(现在在漫威中),下面这样的东西会起作用:

PUT /_river/glacgrp_river/_meta
{
"type":"jdbc",
"jdbc": {
    "driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver", 
    "url":"jdbc:sqlserver://127.0.0.1:1433;databaseName=SAMLTD",
    "user":"sa","password":"sa",
    "sql":"select RTRIM(LTRIM(ACCTGRPCOD)) as id, RTRIM(LTRIM(ACCTGRPDES)) as descp from [GLACGRP]",
    "strategy" : "poll",
    "schedule":"0/10 * * * * ?",
    "index":"accountgroup",
    "type":"ag",
    "maxbulkactions":500

} }

您可以根据需要尝试更改库名、表名和其他选项。

在此之后,您可以使用GET /_river/your_river_name/_status来检查河流是否已设置。

然后重启ES,您的河流应该开始自动从数据库中获取数据并对其进行索引!

希望这能有所帮助

冯星剑
2023-03-14

这个问题很老了,但现在可以使用SQL Server在Windows上轻松设置弹性搜索。

Rivers已弃用:

https://www.elastic.co/blog/deprecating-rivers

所以你应该使用elasticsearch-jdbc插件:

https://github.com/jprante/elasticsearch-jdbc

并在进纸器模式下使用JDBC导入器进行设置。

基本上,一旦您安装了Elastic Search和elasticsearch ch-jdbc插件:

>

  • 从以下位置下载并安装JDBC SQL Server驱动程序:http://www.microsoft.com/en-us/download/details.aspx?id=11774

    创建jdbc_sqlserver.json

    {
       "type":"jdbc",
       "jdbc":{
          "url":"jdbc:sqlserver://localhost:1433;databaseName=test",
          "user":"test",
          "password":"test",
          "sql":"SELECT id as _id, id, name FROM planets",
          "index":"planets",
          "type":"planet",
          "autocommit":"true"
       }
    }
    

    创建包含以下内容的 jdb_sqlserver.ps1 文件

    function Get-PSVersion {
        if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
    }
    $powershell = Get-PSVersion
    if($powershell.Major -le 2 ){
        Write-Error "Oh, so sorry, this script requires Powershell 3 (due to convertto-json)"
        exit
    }
    if((Test-Path   env:\JAVA_HOME) -eq $false){
        Write-Error "Environment variable JAVA_HOME must be set to your java home"
        exit
    }
    $DIR = "D:\programs\elasticsearch\plugins\elasticsearch-jdbc-1.7.0.1\"
    $FEEDER_CLASSPATH="$DIR\lib"
    $FEEDER_LOGGER="file://$DIR\bin\log4j2.xml"
    java -cp "$FEEDER_CLASSPATH\*" -"Dlog4j.configurationFile=$FEEDER_LOGGER" "org.xbib.tools.Runner" "org.xbib.tools.JDBCImporter" jdbc_sqlserver.json
    

    从Powershell运行它

    \jdbc_sqlserver.ps1

    在这里描述了一个完整的设置:http://r2d2.cc/2015/08/05/elastic-search-on-windows-with-mysql-sql-server-2014-and-import-feeder/

  •  类似资料:
    • 出于隐私或法律原因而不能将代码托管到第三方平台的企业,可能希望在企业内部架设专有的GitHub服务,能做到么?答案就是GitHub企业版(GitHub Enterprise)。 网址:https://enterprise.github.com/。 GitHub企业版搭建在企业本地网络中,因此企业拥有对版本库和项目完整的控制权限。GitHub企业版包含了GitHub上所有的好东西:提交历史、代码浏览

    • 一、简介 黄页企业所使用模版的添加、修改、及管理。 二、添加黄页企业模版 企业模版的位置是: phpcms\templates\default\yp\com_default(com_default:为企业模版名称) 二、企业模版管理 三、企业模版的权限设置

    • 该软件官网已不存在 cacti中文企业版 本系统采用liunx与cacti集成,安装配置简单。 使用方法: root密码:CactiEZ cacti登录密码:admin 第一次登录强制更改密码 集成了我们最常用的插件,省去了我们自行安装的麻烦。 登录以后点击:用户管理——admin------区域------所有打钩特别说明: 此版本为目前网上最稳定版本,简单易用,插件非常的全!足以应付我们日常的

    • 以下是为 linkerd 提供商业支持和其他企业产品的公司列表: Buoyant 是 linkerd 的原创者,并提供支持,培训和企业产品。 了解更多 »

    • 作用 用于查询企业账户额度、开票额度等信息。 依赖 暂无依赖 注意 所有接口调用时需要严格遵守请求方式(GET/POST) 使用接口前需要仔细阅读每个接口的注意事项 接口报错时先阅读通用错误解决方案和当前接口文档下的接口错误解决方案

    • 本文档介绍如何在 Kubernetes 上部署 TiDB 集群企业版及相应的企业版工具。TiDB 企业版具有以下特性: 企业级最佳实践 企业级别服务支持 全面加强的安全特性 前置条件 TiDB Operator 部署完成。 部署方法 目前 TiDB Operator 的企业版与社区版部署的差异主要体现在镜像命名上。相比于社区版,企业版的镜像都会多一个 -enterprise 后缀。 spec: