Skip to content

Commit 74b670a

Browse files
committed
samples
1 parent 819645f commit 74b670a

File tree

77 files changed

+2406
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2406
-0
lines changed

.DS_Store

-6 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.datastax.astra.client;
2+
3+
4+
import com.dtsx.astra.sdk.db.domain.CloudProviderType;
5+
6+
import java.util.UUID;
7+
8+
public class Connecting {
9+
public static void main(String[] args) {
10+
// Preferred Access with DataAPIClient (default options)
11+
DataAPIClient client = new DataAPIClient("TOKEN");
12+
13+
// Overriding the default options
14+
DataAPIClient client1 = new DataAPIClient("TOKEN", DataAPIOptions
15+
.builder()
16+
.withHttpConnectTimeout(10)
17+
.withHttpRequestTimeout(10)
18+
.build());
19+
20+
// Access the Database from its endpoint
21+
Database db1 = client1.getDatabase("*API_ENDPOINT*");
22+
Database db2 = client1.getDatabase("*API_ENDPOINT*", "*NAMESPACE*");
23+
24+
// Access the Database from its endpoint
25+
UUID databaseId = UUID.fromString("f5abf92f-ff66-48a0-bbc2-d240bc25dc1f");
26+
Database db3 = client.getDatabase(databaseId);
27+
Database db4 = client.getDatabase(databaseId, "*NAMESPACE*");
28+
Database db5 = client.getDatabase(databaseId, "*NAMESPACE*", "us-east-2");
29+
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.datastax.astra.client;
2+
3+
4+
import com.datastax.astra.client.admin.AstraDBAdmin;
5+
import com.datastax.astra.client.DataAPIClient;
6+
7+
import java.util.UUID;
8+
9+
import static com.dtsx.astra.sdk.db.domain.CloudProviderType.GCP;
10+
11+
public class ConnectingAdmin {
12+
public static void main(String[] args) {
13+
// Default Initialization
14+
DataAPIClient client = new DataAPIClient("TOKEN");
15+
16+
// Accessing admin providing a new token possibly with stronger permissions
17+
AstraDBAdmin astradbAdmin = client.getAdmin("SUPER_USER_TOKEN");
18+
19+
// Create a Database
20+
astradbAdmin.createDatabase("db-demo", GCP, "us-east-1").listNamespaceNames();
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.datastax.astra.client;
2+
3+
import com.datastax.astra.client.admin.AstraDBAdmin;
4+
import com.datastax.astra.client.model.Document;
5+
6+
import java.util.List;
7+
import java.util.UUID;
8+
9+
import static com.datastax.astra.client.model.SimilarityMetric.COSINE;
10+
11+
public class DataApiClient {
12+
public static void main(String[] args) {
13+
DataAPIClient client = new DataAPIClient("TOKEN");
14+
Database database0 = client.getDatabase("API_ENDPOINT");
15+
Collection<Document> collection0 = database0.createCollection("movies", 2, COSINE);
16+
collection0.insertOne(new Document().append("title", "The Title").vector(new float[]{1.0f, 1.0f}));
17+
Database database1 = client.getDatabase(UUID.fromString("01234567-..."));
18+
Database database2 = client.getDatabase(UUID.fromString("01234567-..."), "*NAMESPACE*", "us-east1");
19+
AstraDBAdmin admin1 = client.getAdmin();
20+
AstraDBAdmin admin2 = client.getAdmin("more_powerful_token_override");
21+
List<String> databases = admin1.listDatabaseNames();
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.datastax.astra.client;
2+
3+
import com.datastax.astra.client.model.Document;
4+
import com.datastax.astra.client.model.FindIterable;
5+
6+
import java.util.List;
7+
8+
import static com.datastax.astra.client.model.Filters.eq;
9+
import static com.datastax.astra.client.model.SimilarityMetric.EUCLIDEAN;
10+
11+
public class GettingStarted {
12+
public static void main(String[] args) {
13+
// Initializing client with a token
14+
DataAPIClient client = new DataAPIClient("my_token");
15+
16+
// Accessing the Database through the HTTP endpoint
17+
Database db = client.getDatabase("http://db-region.apps.astra.datastax.com");
18+
19+
// Create collection with vector support
20+
Collection<Document> col = db.createCollection("demo", 2, EUCLIDEAN);
21+
22+
// Insert records
23+
col.insertMany(List.of(
24+
new Document("doc1").vector(new float[]{.1f, 0.2f}).append("key", "value1"),
25+
new Document().id("doc2").vector(new float[]{.2f, 0.4f}).append("hello", "world"),
26+
new Document("doc3").vector(new float[]{.5f, 0.6f}).append("key", "value1"))
27+
);
28+
29+
// Search
30+
FindIterable<Document> docs = col.find(
31+
eq("key", "value1"), // metadata filter
32+
new float[] {.5f, .5f}, //vector
33+
10); // maxRecord
34+
35+
// Iterate and print your results
36+
for (Document doc : docs) System.out.println(doc);
37+
}
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import com.datastax.astra.client.Collection;
2+
import com.datastax.astra.client.DataAPIClient;
3+
import com.datastax.astra.client.Database;
4+
import com.datastax.astra.client.model.Document;
5+
import com.datastax.astra.client.model.FindIterable;
6+
7+
import static com.datastax.astra.client.model.SimilarityMetric.COSINE;
8+
9+
public class Quickstart {
10+
11+
public static void main(String[] args) {
12+
// Loading Arguments
13+
String astraToken = System.getenv("ASTRA_DB_APPLICATION_TOKEN");
14+
String astraApiEndpoint = System.getenv("ASTRA_DB_API_ENDPOINT");
15+
16+
// Initialize the client. The keyspace parameter is optional if you use
17+
// "default_keyspace".
18+
DataAPIClient client = new DataAPIClient(astraToken);
19+
System.out.println("Connected to AstraDB");
20+
21+
Database db = client.getDatabase(astraApiEndpoint, "default_keyspace");
22+
System.out.println("Connected to Database.");
23+
// end::init[]
24+
25+
// tag::collection[]
26+
// Create a collection. The default similarity metric is cosine.
27+
Collection<Document> collection = db
28+
.createCollection("vector_test", 5, COSINE);
29+
System.out.println("Created a collection");
30+
// end::collection[]
31+
32+
// tag::data[]
33+
// Insert documents into the collection
34+
collection.insertMany(
35+
new Document("1")
36+
.append("text", "ChatGPT integrated sneakers that talk to you")
37+
.vector(new float[]{0.1f, 0.15f, 0.3f, 0.12f, 0.05f}),
38+
new Document("2")
39+
.append("text", "An AI quilt to help you sleep forever")
40+
.vector(new float[]{0.45f, 0.09f, 0.01f, 0.2f, 0.11f}),
41+
new Document("3")
42+
.append("text", "A deep learning display that controls your mood")
43+
.vector(new float[]{0.1f, 0.05f, 0.08f, 0.3f, 0.6f}));
44+
System.out.println("Inserted documents into the collection");
45+
// end::data[]
46+
47+
// tag::search[]
48+
// Perform a similarity search
49+
FindIterable<Document> resultsSet = collection.find(
50+
new float[]{0.15f, 0.1f, 0.1f, 0.35f, 0.55f},
51+
10
52+
);
53+
resultsSet.forEach(System.out::println);
54+
// end::search[]
55+
56+
// tag::cleanup[]
57+
// Delete the collection
58+
collection.drop();
59+
System.out.println("Deleted the collection");
60+
// end::cleanup[]
61+
62+
// tag::end[]
63+
}
64+
}
65+
// end::end[]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.datastax.astra.client.admin;
2+
3+
import com.datastax.astra.client.admin.AstraDBAdmin;
4+
import com.datastax.astra.client.DataAPIClient;
5+
import com.dtsx.astra.sdk.db.domain.CloudProviderType;
6+
7+
import java.util.UUID;
8+
9+
public class CreateDatabase {
10+
public static void main(String[] args) {
11+
AstraDBAdmin astraDBAdmin = new DataAPIClient("TOKEN").getAdmin();
12+
13+
// Choose a cloud provider (GCP, AZURE, AWS) and a region
14+
CloudProviderType cloudProvider = CloudProviderType.GCP;
15+
String cloudRegion = "us-east1";
16+
17+
// Create a database
18+
DatabaseAdmin admin = astraDBAdmin.createDatabase("DATABASE_NAME", cloudProvider, cloudRegion);
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.datastax.astra.client.admin;
2+
3+
import com.datastax.astra.client.admin.AstraDBAdmin;
4+
import com.datastax.astra.client.DataAPIClient;
5+
6+
import java.util.UUID;
7+
8+
public class DropDatabase {
9+
public static void main(String[] args) {
10+
AstraDBAdmin astraDBAdmin = new DataAPIClient("TOKEN").getAdmin();
11+
12+
// Delete an existing database
13+
astraDBAdmin.dropDatabase("<database_name>");
14+
15+
// Delete an existing database by ID
16+
astraDBAdmin.dropDatabase(UUID.fromString("<database_id>"));
17+
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.datastax.astra.client.admin;
2+
3+
import com.datastax.astra.client.admin.AstraDBAdmin;
4+
import com.datastax.astra.client.DataAPIClient;
5+
import com.datastax.astra.client.model.DatabaseInfo;
6+
7+
import java.util.UUID;
8+
9+
public class GetDatabaseInformation {
10+
public static void main(String[] args) {
11+
12+
AstraDBAdmin astraDBAdmin = new DataAPIClient("TOKEN").getAdmin();
13+
14+
// Check if a database exists
15+
boolean exists1 = astraDBAdmin.databaseExists("database_name");
16+
boolean exists2 = astraDBAdmin.databaseExists(UUID.fromString("<database_id>"));
17+
18+
// Find a database by name (names may not be unique)
19+
DatabaseInfo databaseInformation = astraDBAdmin
20+
.getDatabaseInfo(UUID.fromString("<database_id>"));
21+
System.out.println("Name=" + databaseInformation.getName());
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.datastax.astra.client.admin;
2+
3+
import com.datastax.astra.client.DataAPIClient;
4+
import com.datastax.astra.client.model.DatabaseInfo;
5+
6+
public class ListDatabases {
7+
public static void main(String[] args) {
8+
9+
// Initialization of admin (astra only)
10+
AstraDBAdmin astraDBAdmin = new DataAPIClient("TOKEN").getAdmin();
11+
12+
// Display all database information
13+
astraDBAdmin.listDatabases().stream()
14+
.map(DatabaseInfo::getId)
15+
.forEach(System.out::println);
16+
17+
// Display all database names
18+
astraDBAdmin.listDatabaseNames();
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.datastax.astra.client.collection;
2+
3+
import com.datastax.astra.client.Collection;
4+
import com.datastax.astra.client.DataAPIClient;
5+
import com.datastax.astra.client.model.BulkWriteOptions;
6+
import com.datastax.astra.client.model.BulkWriteResult;
7+
import com.datastax.astra.client.model.Command;
8+
import com.datastax.astra.client.model.Document;
9+
import com.datastax.astra.internal.api.ApiResponse;
10+
11+
import java.util.List;
12+
13+
public class BulkWrite {
14+
public static void main(String[] args) {
15+
Collection<Document> collection = new DataAPIClient("TOKEN")
16+
.getDatabase("API_ENDPOINT")
17+
.getCollection("COLLECTION_NAME");
18+
19+
// Set a couple of Commands
20+
Command cmd1 = Command.create("insertOne").withDocument(new Document().id(1).append("name", "hello"));
21+
Command cmd2 = Command.create("insertOne").withDocument(new Document().id(2).append("name", "hello"));
22+
23+
// Set the options for the bulk write
24+
BulkWriteOptions options1 = BulkWriteOptions.Builder.ordered(false).concurrency(1);
25+
26+
// Execute the queries
27+
BulkWriteResult result = collection.bulkWrite(List.of(cmd1, cmd2), options1);
28+
29+
// Retrieve the LIST of responses
30+
for(ApiResponse res : result.getResponses()) {
31+
System.out.println(res.getData());
32+
}
33+
}
34+
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.datastax.astra.client.collection;
2+
3+
import com.datastax.astra.client.Collection;
4+
import com.datastax.astra.client.Database;
5+
import com.datastax.astra.client.model.Document;
6+
7+
public class ClearCollection {
8+
public static void main(String[] args) {
9+
// Connect to running dn
10+
Database db = new Database("API_ENDPOINT", "TOKEN");
11+
12+
// Accessing the collection
13+
Collection<Document> collection = db.getCollection("collection_simple");
14+
15+
// Delete all rows from an existing collection
16+
collection.deleteAll();
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.datastax.astra.client.collection;
2+
3+
import com.datastax.astra.client.Collection;
4+
import com.datastax.astra.client.DataAPIClient;
5+
import com.datastax.astra.client.exception.TooManyDocumentsToCountException;
6+
import com.datastax.astra.client.model.Document;
7+
import com.datastax.astra.client.model.Filter;
8+
import com.datastax.astra.client.model.Filters;
9+
10+
import static com.datastax.astra.client.model.Filters.lt;
11+
12+
public class CountDocuments {
13+
public static void main(String[] args) {
14+
Collection<Document> collection = new DataAPIClient("TOKEN")
15+
.getDatabase("API_ENDPOINT")
16+
.getCollection("COLLECTION_NAME");
17+
18+
// Building a filter
19+
Filter filter = Filters.and(
20+
Filters.gt("field2", 10),
21+
lt("field3", 20),
22+
Filters.eq("field4", "value"));
23+
24+
try {
25+
// Count with no filter
26+
collection.countDocuments(500);
27+
28+
// Count with a filter
29+
collection.countDocuments(filter, 500);
30+
31+
} catch(TooManyDocumentsToCountException tmde) {
32+
// Explicit error if the count is above the upper limit or above the 1000 limit
33+
}
34+
35+
}
36+
37+
38+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.datastax.astra.client.collection;
2+
3+
import com.datastax.astra.client.Collection;
4+
import com.datastax.astra.client.DataAPIClient;
5+
import com.datastax.astra.client.model.DeleteResult;
6+
import com.datastax.astra.client.model.Document;
7+
8+
public class DeleteAll {
9+
public static void main(String[] args) {
10+
Collection<Document> collection = new DataAPIClient("TOKEN")
11+
.getDatabase("API_ENDPOINT")
12+
.getCollection("COLLECTION_NAME");
13+
14+
// Show the deleted count
15+
DeleteResult result = collection.deleteAll();
16+
System.out.println("Deleted Count:" + result.getDeletedCount());
17+
}
18+
}

0 commit comments

Comments
 (0)