Bigtable Google по сравнению с реляционной базой данных [дубликат]

попробуйте

 final ArrayList<student> stud = new ArrayList<>();
        if (c.moveToFirst()) {
            do {
                student stu = new student();
                stu.id = c.getString(id);
                stu.name = c.getString(name);
                stu.age = c.getString(age);
                stud.add(stu);

           } while (c.moveToNext());

           //you need to add the Student object stu not the ArrayList Object stud
            if(stud!=null&&stud.size()>0){
               DummyAdapter mAdapter = new DummyAdapter(this,stud);
                recyclerView.setAdapter(mAdapter);
               }

создать новый класс адаптера, подобный этому

public class DummyAdapter extends RecyclerView.Adapter<DummyAdapter.MyViewHolder> {
    private Context mContext;
    ArrayList<student> studentArraylist;

    public DummyAdapter(Context mContext,ArrayList<student> studentArraylist) {
        this.mContext = mContext;
        this.studentArraylist  = studemtArraylist;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    //add your layout design file here
        View view = LayoutInflater.from(mContext).inflate(R.layout.fragment_packing_dummy, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    Student stud = studentArraylist.get(position);
  //perform your rest functionality
    holder.txt.settext(stud.name)

    }

    @Override
    public int getItemCount() {
        return studentArraylist.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
      //access your layout ids here for example
       TextView txt;
        public MyViewHolder(View itemView) {
            super(itemView);
            txt = itemView.findViewById(R.id.txt);
        }
    }
}
29
задан Community 23 May 2017 в 12:16
поделиться

2 ответа

Bigtable - это изобретение Google, позволяющее справляться с огромным количеством информации, с которой компания регулярно сотрудничает. Набор данных Bigtable может вырасти до огромных размеров (много петабайт), а хранилище распределено на большом количестве серверов. , Системы, использующие Bigtable, включают такие проекты, как веб-индекс Google и Google Earth.

Согласно техническому документу Google по теме:

Bigtable - это разреженная, распределенная, постоянная многомерная отсортированная карта. Карта индексируется ключом строки, ключом столбца и отметкой времени; каждое значение на карте представляет собой не интерпретируемый массив байтов.

Внутренняя механика Bigtable по сравнению с, скажем, MySQL настолько различна, что затрудняет сравнение, и намеченные цели также не сильно перекрываются. Но вы можете думать о Bigtable как о базе данных с одной таблицей. Представьте, например, трудности, с которыми вы столкнетесь, если попытаетесь внедрить всю систему веб-поиска Google с базой данных MySQL - Bigtable был построен для решения этих проблем.

Наборы данных Bigtable можно запрашивать в таких сервисах, как AppEngine, используя язык называется GQL ("gee-kwal"), который основан на подмножестве SQL. В GQL явно отсутствует какая-либо команда JOIN . Из-за распределенной природы базы данных Bigtable объединение двух таблиц будет крайне неэффективным. Вместо этого программист должен реализовать такую ​​логику в своем приложении или спроектировать свое приложение так, чтобы оно ему не понадобилось.

Вся система веб-поиска с базой данных MySQL - Bigtable была построена вокруг решения этих проблем.

Наборы данных Bigtable можно запрашивать у таких сервисов, как AppEngine, используя язык GQL («gee-kwal»), который основан на подмножестве SQL. В GQL явно отсутствует какая-либо команда JOIN . Из-за распределенной природы базы данных Bigtable объединение двух таблиц будет крайне неэффективным. Вместо этого программист должен реализовать такую ​​логику в своем приложении или спроектировать свое приложение так, чтобы оно ему не понадобилось.

Вся система веб-поиска с базой данных MySQL - Bigtable была построена вокруг решения этих проблем.

Наборы данных Bigtable можно запрашивать у таких сервисов, как AppEngine, используя язык GQL («gee-kwal»), который основан на подмножестве SQL. В GQL явно отсутствует какая-либо команда JOIN . Из-за распределенной природы базы данных Bigtable объединение двух таблиц будет крайне неэффективным. Вместо этого программист должен реализовать такую ​​логику в своем приложении или спроектировать свое приложение так, чтобы оно ему не понадобилось.

Из-за распределенной природы базы данных Bigtable объединение двух таблиц будет крайне неэффективным. Вместо этого программист должен реализовать такую ​​логику в своем приложении или спроектировать свое приложение так, чтобы оно ему не понадобилось.

Из-за распределенной природы базы данных Bigtable объединение двух таблиц будет крайне неэффективным. Вместо этого программист должен реализовать такую ​​логику в своем приложении или спроектировать свое приложение так, чтобы оно ему не понадобилось.

32
ответ дан 28 November 2019 в 01:42
поделиться

Google BigTable и другие подобные проекты (например: CouchDB , HBase ) - это системы баз данных, которые ориентированы так, что данные в основном денормализованы (т.е. дублированные и сгруппированные).

Основные преимущества: - Операции соединения менее затратные из-за денормализации - Репликация / распространение данных обходится дешевле из-за независимости данных (т. Е. Если вы хотите распределить данные по двум узлам, у вас, вероятно, не будет проблемы с наличием объекта в одном узле и другого связанного объекта в другом узле, потому что аналогично данные группируются).

Этот тип систем предназначен для приложений, которым необходимо достичь оптимального масштаба (т. е. вы добавляете больше узлов в систему, и производительность увеличивается пропорционально). В таких СУБД, как MySQL или Oracle, когда вы начинаете добавлять больше узлов, если вы объединяете две таблицы, которые не находятся в одном и том же узле, стоимость соединения выше. Это становится важным, когда вы имеете дело с большими объемами.

RDBMS 'хороши из-за богатства модели хранения (таблиц, объединений, fks). Распределенные базы данных хороши из-за простоты масштабирования.

14
ответ дан 28 November 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: