Как отобразить запрос, выполняемый представлением Drupal

Я хочу отобразить запрос, который выполняется в представлении drupal. В настоящее время в редакторе представления это показывает запрос однако, у меня есть потребность использовать тот запрос в моем коде для загрузки версии Excel представления.

Существует ли способ получить выполняемый запрос тем же путем, его показывают в окне "редактора" меню представлений? Я хочу это в то время, представление показывают.

Что я планирую сделать, здесь должен получить запрос в нижнем колонтитуле, и отправлять тот запрос на процесс, который передаст набор результатов XLS обратно. Таким образом, я хотел бы точный запрос, представление использует для отображения результатов.

9
задан smokris 23 October 2012 в 15:01
поделиться

3 ответа

Конечно, можно определить несколько редукторов. Для работы (Hadoop 0.20) просто добавить:

job.setNumReduceTasks(<number>);

Но. Ваша инфраструктура должна поддерживать несколько редукторов, что означает, что вы должны

  1. иметь несколько доступных ЦП
  2. настроить mapred.tasktracker.reduce.tasks.maximum в mapred-site.xml соответственно

И, конечно, ваша работа должна соответствовать некоторым спецификациям. Не зная, что именно вы хотите сделать, я могу дать только широкие советы:

  • ключ map-output должен быть разделяемым на% numreducers ИЛИ вы должны определить свой собственный partitioner: job.setPartitionerClass (...) например, со случайным разделителем...
  • данные должны быть уменьшаемы в разделенном формате... (требуются ссылки?)

Вы получите несколько выходных файлов, по одному для каждого редуктора. Если вы хотите отсортированные выходные данные, вы должны добавить еще одно задание чтение всех файлов (несколько карт-задач на этот раз...) и запись их отсортированы только с одним редуктором...

Посмотрите также на Combiner-Class, который является локальным редуктором. Это означает, что можно агрегировать (сокращать) уже имеющиеся в памяти частичные данные, излучаемые картой. Очень хороший пример - WordCount-пример. Карта выдает каждое слово как ключ, а его число как 1: (слово, 1). Объединитель получает частичные данные с карты, выдает (,) локально. Редуктор делает то же самое, но теперь некоторые (комбинированные) числа слов уже > 1. Сохраняет полосу пропускания.

-121--1265993-

сгенерированный exe-файл является всего лишь средством запуска, которое запускает среду выполнения и передает в нее код IL.

Не совсем. Существует несколько способов настройки программы, но, как правило, код IL компилируется в собственный машинный код, который выполняется во время выполнения.

Что касается детей - вы обманываете себя, если думаете, что можете продать им или любому, кто использует то, что они перераспределяют. Если они не смогут разблокировать ваше приложение, они перейдут и найдут то, что они могут сделать или без него. Они представляют собой ровно $0 в потенциальных продажах; нет смысла тратить слишком много усилий, пытаясь помешать им, потому что не будет никакой отдачи от ваших инвестиций. Обычный обфускатор может быть и в порядке, но не стоит выходить за рамки этого.

Реально, большинство разработчиков сталкиваются с гораздо большей проблемой из-за неясности, чем из-за пиратства. Все, что вы делаете, что мешает вам получить информацию о вашем продукте причиняет вам больше вреда, чем пираты. Это включает в себя заставление людей платить деньги, чтобы получить его. В большинстве случаев лучший подход заключается в том, чтобы иметь бесплатную версию вашего приложения, которую детям даже не нужно разблокировать; что-то, что уже работает для них достаточно хорошо, что взлом вашего приложения будет просто пустой тратой их времени, а не просто временем или испытанием с ограниченными возможностями. Пусть они и как можно больше других распространят его далеко и широко.

Теперь я знаю, что вам в конечном итоге нужны платящие клиенты. Ключ заключается в том, чтобы теперь использовать все внимание, которое вы получаете от бесплатного продукта, чтобы повысить продажи или продвигать что-то еще, что более выгодно.Один из вариантов здесь - также иметь премиальную версию с дополнительными функциями, ориентированными в основном на бизнес-аудиторию; такие вещи, как упрощение развертывания во всей сети и управление таким способом. Компании имеют более глубокие карманы и с большей вероятностью оплачивают лицензионные сборы. Ваша бесплатная версия затем служит для продвижения вашего продукта и придания ему легитимности для вашего бизнес- потребительский.

Конечно, есть и другие модели, но независимо от того, что вы делаете, стоит помнить, что неизвестность - это большая проблема, и что пиратские копии вашего программного обеспечения никогда не превратятся в продажи. В конечном счете (и, конечно, это зависит от вашего исполнения) вы сможете заработать больше денег с помощью бизнес-модели, которая использует преимущества этих точек, чем вы будете пытаться бороться с ними.

-121--1399562-

Запрос существует в объекте представления. В зависимости от того, где вы хотите его использовать, вы можете добавить переменную в функцию предварительной обработки представлений или в место, которое вы вызываете представление (если вызываете его программно).

Если вы просто используете шаблон по умолчанию для него, вы можете иметь доступ к нему там:

// ex. somewhere in your views-view--VIEW_NAME.tpl.php
<?php print db_prefix_tables($view->build_info['query']); ?>

Будьте осторожны, если ваш процесс принимает произвольный SQL, хотя, возможно, лучше вызвать его с именем представления, и чтобы он программно подобрать результаты, как требуется. Или иметь вторичный дисплей в представлении, которое возвращает результат в результирующий набор XLS напрямую.

3
ответ дан 4 December 2019 в 13:47
поделиться

Модуль devel может записывать запросы за вас.

2
ответ дан 4 December 2019 в 13:47
поделиться

http://drupal.org/project/views_bonus поможет экспортировать из Views.

0
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

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