# Bulk insert in elasticsearch datastream using elasticsearch-java 8.6.2

**URL:** <https://discuss.elastic.co/t/bulk-insert-in-elasticsearch-datastream-using-elasticsearch-java-8-6-2/333744>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [May 18, 2023, 8:54am UTC](https://discuss.elastic.co/t/bulk-insert-in-elasticsearch-datastream-using-elasticsearch-java-8-6-2/333744 "2023-05-18T08:54:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ayanarora0101](https://avatars.discourse-cdn.com/v4/letter/a/e56c9b/32.png) [@ayanarora0101](https://discuss.elastic.co/u/ayanarora0101)\
**Post date:** [May 18, 2023, 8:54am UTC](https://discuss.elastic.co/t/bulk-insert-in-elasticsearch-datastream-using-elasticsearch-java-8-6-2/333744/1 "2023-05-18T08:54:55Z")

</div>

I'm trying to bulk insert documents in datastream in elasticsearch using java with (ElasticsearchClient) (elasticsearch-java) 8.6.2.

I checked documentation of elasticsearch-java and found information around bulk indexing in index, and i'm able to insert bulk data in index. [Bulk: indexing multiple documents | Elasticsearch Java API Client [8.7] | Elastic](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/indexing-bulk.html)

```auto
List<Product> products = fetchProducts();

BulkRequest.Builder br = new BulkRequest.Builder();

for (Product product : products) {
    br.operations(op -> op           
        .index(idx -> idx            
            .index("products")       
            .id(product.getSku())
            .document(product)
        )
    );
}

BulkResponse result = esClient.bulk(br.build());

// Log errors, if any
if (result.errors()) {
    logger.error("Bulk had errors");
    for (BulkResponseItem item: result.items()) {
        if (item.error() != null) {
            logger.error(item.error().reason());
        }
    }
}

```

I'm trying to bulk insert documents in datastream in elasticsearch using java with (ElasticsearchClient) (elasticsearch-java) 8.6.2.

I checked official documentation of elasticsearch-java and found information around bulk indexing in index, and i'm able to insert bulk data in index. [Bulk: indexing multiple documents | Elasticsearch Java API Client [8.7] | Elastic](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/indexing-bulk.html)

```auto
List<Product> products = fetchProducts();

BulkRequest.Builder br = new BulkRequest.Builder();

for (Product product : products) {
    br.operations(op -> op           
        .index(idx -> idx            
            .index("products")       
            .id(product.getSku())
            .document(product)
        )
    );
}

BulkResponse result = esClient.bulk(br.build());

// Log errors, if any
if (result.errors()) {
    logger.error("Bulk had errors");
    for (BulkResponseItem item: result.items()) {
        if (item.error() != null) {
            logger.error(item.error().reason());
        }
    }
}

```

But when I'm trying to insert data in datastream using this code i'm getting below error: **only write ops with an op type of create are allowed in data-streams**

```auto
class Product
{
   String name;
   Map<String, Object> info;
}

```

How can we bulk insert data from java object (Product.info) in batches of 1000 in data streams?

Thanks in advance.

---

<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:** [June 15, 2023, 8:55am UTC](https://discuss.elastic.co/t/bulk-insert-in-elasticsearch-datastream-using-elasticsearch-java-8-6-2/333744/2 "2023-06-15T08:55:36Z")

</div>

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