كيفية الحصول على قائمة بجميع جدول مساحة رئيسية في كاساندرا
سؤال
أنا جديد على كاساندرا ، وأنا حاليا باستخدام كاساندراكشاربدريفر في تطبيق وهمية.أريد الحصول على قائمة بجميع الجداول التي وصفها المستخدم في مساحة مفتاح معينة.
Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
Session session = cluster.Connect("MyKeySpace");
في هذا الرمز أريد الحصول على قائمة بجميع جداول ميكي سبيس
المحلول
سوف تعمل من خلال كيفية إعداد تلك القائمة من الجداول مع داتاستاكس كاساندرا ج # سائق:
الاتصال بالكتلة الخاصة بك:
Cluster cluster = Cluster.Builder().AddContactPoints("IPAddress").Build();
Session session = cluster.Connect();
سوف خلق List<String>
واستخدام بيان أعدت (لأن هذا مجرد فكرة جيدة) لربط اسم كيسباس الخاص بك.بيان كل بلدي هو اختيار فقط columnfamily_name
, ، الذي يجب أن يكون ما تحتاجه.
List<String> tableList = new List<String>();
String strCQL = "SELECT columnfamily_name "
+ "FROM system.schema_columnfamilies WHERE keyspace_name=? ";
PreparedStatement pStatement = _session.Prepare(strCQL);
BoundStatement boundStatement = new BoundStatement(pStatement);
boundStatement.Bind("MyKeySpace");
الآن سوف تنفيذ البيان ، تكرار من خلال النتائج ، وإضافة كل اسم الجدول إلى القائمة التي أنشأتها أعلاه.
RowSet results = session.Execute(boundStatement);
foreach (Row result in results.GetRows())
{
tableName = result.GetValue<String>("columnfamily_name");
tableList.Add(tableName);
}
الآن يجب أن يكون لديك قائمة بالجداول التي يمكنك إضافتها إلى واجهة المستخدم الخاصة بك.
نصائح أخرى
يمكنك تشغيل:
giveacodicetagpre.يعمل ضد Kyespace "النظام".
-
احصل على أسماء الأعمدة :
giveacodicetagpre -
احصل على أسماء الأسرة العمود ، أي أسماء الجدول:
giveacodicetagpre
هناك خيار استخدام البيانات الوصفية الكتلة وكذلك للحصول على قائمة سلسلة من المفاتيح مثل
giveacodicetagpre.