# MS SQL+ ELASTICSEARCH

**URL:** <https://discuss.elastic.co/t/ms-sql-elasticsearch/258563>\
**Category:** Logstash\
**Created:** [December 14, 2020, 10:28am UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563 "2020-12-14T10:28:25Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pmate](https://avatars.discourse-cdn.com/v4/letter/p/d9b06d/32.png) [@pmate](https://discuss.elastic.co/u/pmate)\
**Post date:** [December 14, 2020, 10:28am UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/1 "2020-12-14T10:28:25Z")

</div>

Hy everybody!

I am new in elasticsearch and beginner in docker also. I need to know what is the best way to connect an ms sql data base to an elastichsearch docker instance?

Thanks for Help!

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [December 14, 2020, 10:41am UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/2 "2020-12-14T10:41:02Z")

</div>

Means you want to sync MSSQL data into elasticsearch ?  
If yes, the best way is to use logsatsh with [JBBC input](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)  
Something like this may help

```auto
input {
  jdbc {
    jdbc_driver_library => "/opt/mssql-jdbc-7.5.1.jre9.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://sql1:1433.database.windows.net"
    jdbc_user => " ******"
    jdbc_password => " ******"
    statement => "SELECT * from TestDB.Inventory;"
  }
}

```

---

<div class="post-metadata">

**Author:** ![pmate](https://avatars.discourse-cdn.com/v4/letter/p/d9b06d/32.png) [@pmate](https://discuss.elastic.co/u/pmate)\
**Post date:** [December 14, 2020, 12:07pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/3 "2020-12-14T12:07:46Z")

</div>

Thank you!

Somewhere can i find a yaml for this solution?

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [December 14, 2020, 12:16pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/4 "2020-12-14T12:16:21Z")

</div>

by yaml you means a docker-compose configuration ?

---

<div class="post-metadata">

**Author:** ![pmate](https://avatars.discourse-cdn.com/v4/letter/p/d9b06d/32.png) [@pmate](https://discuss.elastic.co/u/pmate)\
**Post date:** [December 14, 2020, 12:17pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/5 "2020-12-14T12:17:59Z")

</div>

Yes definitely,

---

<div class="post-metadata">

**Author:** ![ylasri](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ylasri/32/86120_2.png) [@ylasri](https://discuss.elastic.co/u/ylasri)\
**Post date:** [December 14, 2020, 12:38pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/6 "2020-12-14T12:38:39Z")

</div>

You can check more details [here](https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-docker.html)  
I will suppose you have already an MSSQL database running on a host and you want to sync it to a new Es instance with logstash.

The logstash config looks like this

```auto
input {
		jdbc {
				#> jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
				jdbc_connection_string => "jdbc:sqlserver://XXXXX;databaseName=XXX;integratedSecurity=false;"
				jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
				jdbc_user => "user"
				jdbc_password => " *****"
				jdbc_driver_library => "/etc/logstash/mssql-jdbc-6.4.0.jre9.jar"
				statement => "SELECT id,name FROM TestTable where id> :sql_last_value "
				tracking_column => "id"
				use_column_value => true
				clean_run => true
				last_run_metadata_path => "/path/.logstash_jdbc_last_run"
		}
}
output {
    elasticsearch {
        hosts => ["http://elasticsearch:9200"] 
    }
    stdout {
        codec => rubydebug
    }
}

```

You will need to get the jdbc driver corresponding to your MSSQL instance [here](https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15)

Here is an example of docker-compose that can be used,

```auto
version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
    container_name: elasticsearch
    environment:
      - node.name=elasticsearch
      - cluster.name=elasticsearch
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - xpack.security.enabled=false
      - discovery.type=single-node
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
      
  logstash:
    image: docker.elastic.co/logstash/logstash:7.10.1
    container_name: logstash
    depends_on:
      - elasticsearch
    environment:
      LS_JAVA_OPTS: "-Xmx256m -Xms256m"
    command: logstash -f /etc/logstash/conf.d/logstash-mssql.conf
    volumes:
      - ./logstash/logstash-mssql.conf:/etc/logstash/logstash-mssql.conf
      - ./logstash/mssql-jdbc-6.4.0.jre9.jar:/etc/logstash/mssql-jdbc-6.4.0.jre9.jar
    ports:
      - 9600:9600
    networks:
      - elastic
      
           
volumes:
  data01:
    driver: local

networks:
  elastic:
    driver: bridge

```

Hope this can help

---

<div class="post-metadata">

**Author:** ![pmate](https://avatars.discourse-cdn.com/v4/letter/p/d9b06d/32.png) [@pmate](https://discuss.elastic.co/u/pmate)\
**Post date:** [December 14, 2020, 1:02pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/7 "2020-12-14T13:02:21Z")

</div>

Thank you so much!  
It helps a lot.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 11, 2021, 1:02pm UTC](https://discuss.elastic.co/t/ms-sql-elasticsearch/258563/8 "2021-01-11T13:02:29Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
