適用於:
卡珊德拉
身為開發人員,您可能有使用索引鍵/值組的應用程式。 您可以使用 Azure Cosmos DB 中 Cassandra 帳戶的 API 來儲存金鑰/值數據。 本教學課程說明如何使用 Java 應用程式在 Azure Cosmos DB 中建立 Cassandra 帳戶的 API、新增資料庫(也稱為 keyspace),以及新增數據表。 Java 應用程式會使用 Java 驅動程式 來建立使用者資料庫,其中包含使用者識別碼、使用者名稱和使用者城市等詳細數據。
本教學課程涵蓋下列工作:
- 建立 Cassandra 資料庫帳戶。
- 取得帳戶連接字串。
- 建立 Maven 專案和相依性。
- 新增資料庫和數據表。
- 執行應用程式。
先決條件
- 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- 取得最新版本的 Java Development Kit (JDK)。
-
下載並安裝Maven 二進位封存檔。 在 Ubuntu 上,您可以執行
apt-get install maven來安裝 Maven。
建立資料庫帳戶
從 Azure 入口網站功能表或首頁,選取 [建立資源]。
在 [新增] 頁面上,搜尋並選取 [Azure Cosmos DB]。
在 [Azure Cosmos DB] 頁面上,選取 [建立]。
在 [API] 頁面的 [Cassandra ] 區段底下,選取 [ 建立]。
API 會決定要建立的帳戶類型。 Azure Cosmos DB 提供五個 API:NoSQL (適用於文件資料庫)、Gremlin (適用於圖形資料庫)、MongoDB (適用於文件資料庫)、Azure 資料表與 Cassandra。 您必須為每個 API 建立個別帳戶。
選取 Cassandra ,因為在本教學課程中,您會建立可與 Cassandra API 搭配運作的數據表。
若要深入瞭解 Cassandra 的 API,請參閱 什麼是適用於 Apache Cassandra 的 Azure Cosmos DB?。
在 [ 建立 Azure Cosmos DB 帳戶 ] 頁面上,輸入新 Azure Cosmos DB 帳戶的基本設定。
設定 值 說明 訂閱 您的訂用帳戶。 選取要用於此 Azure Cosmos DB 帳戶的 Azure 訂用帳戶。 資源群組 新建。
然後輸入與 帳戶名稱相同的名稱。選取 [建立新的]。 然後為您的帳戶輸入新的資源群組名稱。 為求簡化,請使用與 Azure Cosmos DB 帳戶名稱相同的名稱。 客戶名稱 輸入唯一名稱。 輸入唯一名稱來識別您的 Azure Cosmos DB 帳戶。 您的帳戶 URI, cassandra.cosmos.azure.com,附加至您唯一的帳戶名稱。
帳戶名稱只能使用小寫字母、數位和連字元 (-) 且長度必須介於 3 到 31 個字元之間。地點 最接近使用者的區域。 選取用來裝載 Azure Cosmos DB 帳戶的地理位置。 使用最接近使用者的位置,以便他們能以最快速度存取資料。 容量模式 預留的吞吐量 或 無伺服器。 選取 布建輸送量 以在 布建輸送量 模式中建立帳戶。 選取 [無伺服器 ] 以在 無伺服器 模式中建立帳戶。 申請 Azure Cosmos DB 免費階層折扣 套用 或 不適用。 使用 Azure Cosmos DB 免費層,您可以在帳戶中免費取得前 1,000 RU/秒和 25 GB 的記憶體。 深入了解 免費方案。 限制帳戶總吞吐量 選擇來限制帳戶的吞吐量。 如果您想要將帳戶的總輸送量限制為特定值,這個選項會很有用。 附註
每個 Azure 訂用帳戶最多可以有一個免費層 Azure Cosmos DB 帳戶。 您必須在建立帳戶時選擇加入。 如果您沒有看到套用免費層折扣的選項,則訂用帳戶中的另一個帳戶已啟用免費層。
在 全域分配 索引標籤上,設定下列詳細資料。 使用本教學課程的預設值。
設定 值 說明 異地備援 停用 藉由將您的區域與配對區域進行配對,在您的帳戶上啟用或停用全域散發。 您可以在稍後將更多區域新增至您的帳戶。 多重區域寫入 停用 有了多區域寫入功能,您可以利用全球資料庫和容器的佈建輸送量。 可用性區域 停用 可用性區域是 Azure 區域內的隔離位置。 每個區域皆由一或多個配備獨立電力、冷卻系統及網路的資料中心所組成。 如果您選取 [無伺服器 ] 作為 [容量] 模式,則無法使用下列選項:
- 套用免費層折扣
- 異地備援
- 多重區域寫入
您可以選擇性地在下列索引標籤上設定其他詳細資料:
選取 [檢閱 + 建立]。
檢閱帳戶設定,然後選取 [建立]。 建立帳戶需要幾分鐘的時間。 等候入口網站頁面顯示 [您的部署已完成] 訊息。
選取 [移至資源] 以移至 Azure Cosmos DB 帳戶頁面。
取得您帳戶的連線詳細資料
從 Azure 入口網站取得連接字串資訊,並將其複製到 Java 設定檔。 連接字串可讓您的應用程式與託管資料庫進行通訊。
在 Azure 入口網站中,移至您的 Azure Cosmos DB 帳戶。
開啟 [連接字串] 窗格。
複製接觸點、連接埠、使用者名稱以及主要密碼的值,以用於後續步驟。
建立專案和相依性
您在本文中使用的 Java 範例專案會裝載在 GitHub 中。 您可以執行本文中的步驟,或從 azure-cosmos-db-cassandra-java-getting-started 存放 庫下載範例。
下載檔案後,請更新 java-examples\src\main\resources\config.properties 檔案內的連接字串資訊,並加以執行。
cassandra_host=<FILLME_with_CONTACT POINT>
cassandra_port = 10350
cassandra_username=<FILLME_with_USERNAME>
cassandra_password=<FILLME_with_PRIMARY PASSWORD>
若要從頭開始建置範例,請遵循下列步驟:
從終端機或命令提示字元中,建立名為
cassandra-demo的新 Maven 專案。mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false找到
cassandra-demo資料夾。 使用文字編輯器,開啟pom.xml產生的檔案。新增您的專案所需的 Cassandra 相依性和建置外掛程式,如 pom.xml 檔案所示。
在
cassandra-demo\src\main資料夾下方,建立名為resources的新資料夾。 在資料夾底resources下,新增config.properties和log4j.properties檔案:- Config.properties 檔案會儲存 API for Cassandra 帳戶的連線端點和金鑰值。
- Log4j.properties 檔案會定義與 API for Cassandra 互動所需的記錄層級。
瀏覽至
src/main/java/com/azure/cosmosdb/cassandra/資料夾。 在資料夾內cassandra,建立另一個名為utils的資料夾。 新的資料夾會儲存連線到 Cassandra 帳戶 API 所需的公用程式類別。新增 CassandraUtils 類別來建立叢集,以及開啟和關閉 Cassandra 工作階段。 叢集會連線至 Azure Cosmos DB 中的 API for Cassandra 帳戶,並傳回要存取的工作階段。 使用 Configurations 類別從檔案讀取連接字串資訊
config.properties。Java 範例會建立具有使用者資訊的資料庫,例如使用者名稱、使用者標識碼和使用者城市。 您必須定義
get和set方法來存取 main 函式中的使用者詳細數據。在 資料夾中使用
src/main/java/com/azure/cosmosdb/cassandra/和get方法來建立set類別。
新增資料庫和資料表
本節描述如何使用 Cassandra 查詢語言 (CQL) 新增資料庫 (keyspace) 和數據表。
在
src\main\java\com\azure\cosmosdb\cassandra資料夾下方,建立名為repository的新資料夾。建立
UserRepositoryJava 類別,並將下列程式碼新增至該類別:package com.azure.cosmosdb.cassandra.repository; import java.util.List; import com.datastax.driver.core.BoundStatement; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Create a Cassandra session */ public class UserRepository { private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); private Session session; public UserRepository(Session session) { this.session = session; } /** * Create keyspace uprofile in cassandra DB */ public void createKeyspace() { final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; session.execute(query); LOGGER.info("Created keyspace 'uprofile'"); } /** * Create user table in cassandra DB */ public void createTable() { final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"; session.execute(query); LOGGER.info("Created table 'user'"); } }找到
src\main\java\com\azure\cosmosdb\cassandra資料夾並建立名為examples的新子資料夾。建立
UserProfileJava 類別。 這個類別包含呼叫您稍早定義之createKeyspace和createTable方法的主要方法。package com.azure.cosmosdb.cassandra.examples; import java.io.IOException; import com.azure.cosmosdb.cassandra.repository.UserRepository; import com.azure.cosmosdb.cassandra.util.CassandraUtils; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Example class which will demonstrate following operations on Cassandra Database on CosmosDB * - Create Keyspace * - Create Table * - Insert Rows * - Select all data from a table * - Select a row from a table */ public class UserProfile { private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); public static void main(String[] s) throws Exception { CassandraUtils utils = new CassandraUtils(); Session cassandraSession = utils.getSession(); try { UserRepository repository = new UserRepository(cassandraSession); //Create keyspace in cassandra database repository.createKeyspace(); //Create table in cassandra database repository.createTable(); } finally { utils.close(); LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); } } }
執行應用程式
開啟命令提示字元或終端機視窗。 貼上下列程式碼區塊。
此程式代碼會將目錄 (
cd) 變更為您建立項目的資料夾路徑。 然後,會執行mvn clean install命令來在目標資料夾內產生cosmosdb-cassandra-examples.jar檔案。 最後,會執行 Java 應用程式。cd cassandra-demo mvn clean install java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile終端機視窗會顯示 keyspace 和資料表已建立的通知。
在 Azure 入口網站中,開啟 Data Explorer 以確認已建立 keyspace 和數據表。
後續步驟
在本教學課程中,您已瞭解如何使用 Java 應用程式,在 Azure Cosmos DB、資料庫和數據表中建立 Cassandra 帳戶的 API。 您現在可以繼續進行下一篇文章: