Tất cả câu hỏi

Ngân hàng câu hỏi trắc nghiệm có giải thích chi tiết.

5.920/20.347 câuCòn 14.427
ASqoop
BFlume
CHive
DPig
Lời giải
Đáp án đúng: "Flume". Apache Flume là dịch vụ phân tán chuyên thu gom, tổng hợp và nạp (ingest) khối lượng lớn dữ liệu log từ nhiều máy chủ vào kho lưu trữ tập trung như HDFS hay HBase, theo mô hình source, channel, sink chạy liên tục. "Sqoop" cũng là công cụ nạp dữ liệu nhưng dành cho dữ liệu có cấu trúc: chuyển bảng qua lại giữa cơ sở dữ liệu quan hệ như MySQL, Oracle và Hadoop theo lô, không thiết kế cho dòng log phát sinh liên tục. "Hive" là kho dữ liệu trên Hadoop cho phép truy vấn bằng HiveQL giống SQL trên dữ liệu đã nằm trong HDFS, tức là khâu phân tích chứ không phải khâu nạp. "Pig" là nền tảng xử lý với ngôn ngữ kịch bản Pig Latin để biến đổi dữ liệu đã lưu, cũng không làm nhiệm vụ thu gom log.
Mở trang câu hỏi này →
AExcel
BHadoop
CSpark
DPig
Lời giải
Đáp án đúng: "Excel". Công cụ dữ liệu lớn được thiết kế để lưu trữ và xử lý dữ liệu phân tán trên nhiều máy, mở rộng theo chiều ngang khi dữ liệu tăng; Excel là bảng tính chạy trên một máy, giới hạn khoảng một triệu dòng mỗi trang tính và không có cơ chế phân tán hay chịu lỗi, nên không thuộc nhóm này. "Hadoop" là nền tảng gồm hệ tệp phân tán HDFS, bộ quản lý tài nguyên YARN và mô hình lập trình MapReduce, chính là xương sống của hệ sinh thái dữ liệu lớn. "Spark" là động cơ xử lý phân tán trong bộ nhớ với RDD, Spark SQL, MLlib, nhanh hơn MapReduce nhiều lần ở bài toán lặp. "Pig" là công cụ trong hệ sinh thái Hadoop, cho viết luồng xử lý bằng ngôn ngữ kịch bản Pig Latin rồi biên dịch thành các job MapReduce chạy trên cụm.
Mở trang câu hỏi này →
AEvaluate the fields within the data model against the report requirements
BCheck for any available data models created by other users
CChoose the data model with the most fields available
DSelect the data model that was most recently updated
Lời giải
Đáp án đúng: "Evaluate the fields within the data model against the report requirements". Trong Splunk, data model (mô hình dữ liệu) là tập dataset tổ chức phân cấp, mỗi dataset định nghĩa sẵn các trường (field) và ràng buộc; giao diện Pivot cho người dùng kéo thả các trường đó để tạo bảng, biểu đồ mà không cần viết lệnh SPL. Vì Pivot chỉ thao tác được trên những trường mà data model cung cấp, bước quyết định là đối chiếu các trường của mô hình với yêu cầu báo cáo: cần chỉ số nào, chia nhóm theo thuộc tính nào, lọc theo điều kiện gì; thiếu trường cần thiết thì báo cáo không dựng được. "Check for any available data models created by other users" chỉ giúp biết đang có những mô hình nào để chọn, nhưng mô hình do người khác tạo chưa chắc phù hợp với phân tích của mình. "Choose the data model with the most fields available" sai vì nhiều trường không có nghĩa là có đúng trường cần dùng, lại khiến việc chọn trường rối hơn. "Select the data model that was most recently updated" sai vì độ mới của lần cập nhật không nói gì về việc mô hình có chứa dữ liệu và trường phù hợp với báo cáo hay không.
Mở trang câu hỏi này →
AData format
BData accuracy/trustworthiness
CData size
DData transfer rate
Lời giải
Đáp án đúng: "Data accuracy/trustworthiness". Veracity (tính xác thực) là một trong các chữ V của dữ liệu lớn, chỉ mức độ chính xác, đáng tin cậy và chất lượng của dữ liệu: dữ liệu có bị nhiễu, thiếu, mâu thuẫn hay đến từ nguồn không tin được hay không. Dữ liệu lớn gom từ nhiều nguồn khác nhau nên veracity thường thấp và phải làm sạch, đối chiếu trước khi phân tích. "Data format" thuộc về variety (tính đa dạng), tức dữ liệu có nhiều dạng như bảng, văn bản, ảnh, đồ thị. "Data size" là volume (khối lượng), độ lớn tính bằng terabyte hay petabyte. "Data transfer rate" gần với velocity (tốc độ), tức tốc độ dữ liệu được sinh ra và phải xử lý. Ba chữ V đó mô tả quy mô và hình thức, không nói gì về việc dữ liệu đúng hay sai.
Mở trang câu hỏi này →
ASELECT user_table FROM username
BSELECT username FROM user_table
CSELECT username FROM user_table WHERE userId=1
DSELECT username FROM userId WHERE *
Lời giải
Đáp án đúng: "SELECT username FROM user_table". Cú pháp SQL cơ bản là SELECT danh sách cột FROM tên bảng; muốn lấy toàn bộ cột username của mọi dòng (bao nhiêu dòng cũng được) thì chỉ cần nêu cột username sau SELECT, tên bảng user_table sau FROM và không đặt điều kiện lọc nào. "SELECT user_table FROM username" đảo ngược vai trò: coi user_table là cột và username là bảng, trong khi không tồn tại bảng nào tên username nên câu lệnh báo lỗi. "SELECT username FROM user_table WHERE userId=1" đúng cú pháp nhưng mệnh đề WHERE lọc chỉ còn dòng có userId bằng 1, trả về đúng một giá trị admin chứ không phải cả cột. "SELECT username FROM userId WHERE *" sai hai chỗ: userId là một cột chứ không phải bảng, và sau WHERE phải là một biểu thức điều kiện, dấu sao không phải điều kiện hợp lệ.
Mở trang câu hỏi này →
AA set of nodes which can reach (almost) all other nodes
BWhat is the shortest path through a network
CWhich nodes' removal will maximally disrupt the network
DWhich nodes have the highest ratio of out-degree nodes to in-degree nodes
Lời giải
Đáp án đúng gồm hai ý: "A set of nodes which can reach (almost) all other nodes" và "Which nodes' removal will maximally disrupt the network". Bài toán "người chơi chủ chốt" (key player problem) trong phân tích độ trung tâm (centrality) có hai dạng kinh điển: tìm một tập nút từ đó lan tới được gần như toàn mạng, hữu ích khi muốn khuếch tán thông tin hay chọn người ảnh hưởng, và tìm những nút mà gỡ bỏ thì mạng bị chia cắt hoặc suy giảm kết nối nhiều nhất, hữu ích khi cần bảo vệ hạ tầng hay chặn lây lan. Phương án "What is the shortest path through a network" thuộc nhóm phân tích đường đi (path analytics), giải bằng thuật toán như Dijkstra, chứ không phải bài toán xác định nút chủ chốt. Phương án "Which nodes have the highest ratio of out-degree nodes to in-degree nodes" chỉ là một chỉ số tính từ bậc vào và bậc ra của từng nút, không trả lời câu hỏi nút nào phủ được mạng hay nút nào làm mạng tan rã.
Mở trang câu hỏi này →
5907Spark SQL is often used for:4 lựa chọn
AImage processing
BStructured data analysis
CData storage
DData streaming
Lời giải
Đáp án đúng: "Structured data analysis". Spark SQL là mô-đun của Spark để xử lý dữ liệu có cấu trúc (structured data): nó cung cấp DataFrame và Dataset có lược đồ (schema), cho phép viết truy vấn SQL hoặc HiveQL, đọc các định dạng như Parquet, JSON, bảng Hive, và dùng bộ tối ưu Catalyst để lập kế hoạch thực thi hiệu quả. "Image processing" không phải mục đích của Spark SQL; xử lý ảnh cần thư viện chuyên dụng, dù có thể chạy trên Spark. "Data storage" sai vì Spark nói chung, kể cả Spark SQL, là động cơ tính toán, còn việc lưu trữ do HDFS, S3, HBase hay cơ sở dữ liệu khác đảm nhận. "Data streaming" là phạm vi của Spark Streaming và Structured Streaming; Structured Streaming có dựng trên engine của Spark SQL nhưng công dụng tiêu biểu của Spark SQL vẫn là phân tích dữ liệu có cấu trúc.
Mở trang câu hỏi này →
ASatellite Data
BSocial Media
CDisease data from Center for Disease Control.
Lời giải
Đáp án đúng: "Disease data from Center for Disease Control.". Dữ liệu lớn thường được chia theo ba nguồn sinh ra nó: máy móc (machine-generated, ví dụ cảm biến), con người (people-generated, ví dụ bài đăng, ảnh) và tổ chức (organizational data, dữ liệu do doanh nghiệp, cơ quan ghi nhận trong hoạt động của mình như giao dịch, hồ sơ, thống kê). Dữ liệu bệnh tật do Trung tâm Kiểm soát Dịch bệnh tập hợp từ báo cáo của bệnh viện và cơ sở y tế là dữ liệu do một tổ chức thu thập và quản lý, nên là ví dụ đúng. "Satellite Data" là dữ liệu do máy sinh ra, cụ thể là cảm biến và thiết bị chụp ảnh trên vệ tinh gửi về liên tục. "Social Media" là dữ liệu do con người sinh ra khi đăng bài, bình luận, chia sẻ hình ảnh, thường phi cấu trúc và không do một tổ chức ghi nhận theo quy trình nghiệp vụ.
Mở trang câu hỏi này →
5909What does SaaS provide?3 lựa chọn
AComputing Environment
BHardware Only
CSoftware On-Demand
Lời giải
Đáp án đúng: "Software On-Demand". SaaS (Software as a Service, phần mềm như một dịch vụ) là tầng trên cùng của mô hình dịch vụ đám mây: nhà cung cấp lo toàn bộ hạ tầng, nền tảng lẫn ứng dụng, người dùng chỉ việc dùng phần mềm hoàn chỉnh qua trình duyệt hoặc API khi cần và trả tiền theo thuê bao, ví dụ Gmail hay Salesforce. "Computing Environment" là thứ PaaS (Platform as a Service) cung cấp: hệ điều hành, runtime, cơ sở dữ liệu, công cụ phát triển để lập trình viên tự triển khai ứng dụng của mình. "Hardware Only" ứng với IaaS (Infrastructure as a Service), nơi người dùng chỉ thuê máy ảo, lưu trữ, mạng rồi tự cài mọi thứ phía trên. Thứ tự từ dưới lên IaaS, PaaS, SaaS cho thấy càng lên cao người dùng càng ít phải tự quản lý.
Mở trang câu hỏi này →
Amatch p=(a)-[:TO*]->(p) return p
Bmatch p=shortestPath((a)-[:TO*]->(p)) return p
Cmatch p=(a)-[:TO*1..5]->(p) return p
DshortestPath(a TO P)
Lời giải
Đáp án đúng: "match p=shortestPath((a)-[:TO*]->(p)) return p". Trong Cypher, ngôn ngữ truy vấn của Neo4j, hàm shortestPath nhận một mẫu đường đi có độ dài biến thiên và trả về một đường ngắn nhất giữa hai nút; ký hiệu [:TO*] nghĩa là đi qua một hoặc nhiều quan hệ loại TO, còn biến p được gán cho cả đường đi để trả về. Phương án "match p=(a)-[:TO*]->(p) return p" thiếu hàm shortestPath nên trả về mọi đường đi có thể giữa hai nút, không chỉ đường ngắn nhất, và trên đồ thị lớn số đường này có thể bùng nổ. Phương án "match p=(a)-[:TO*1..5]->(p) return p" chỉ giới hạn độ dài từ 1 đến 5 bước, vẫn liệt kê mọi đường trong giới hạn đó chứ không chọn đường ngắn nhất. Còn "shortestPath(a TO P)" không phải câu lệnh Cypher hợp lệ vì thiếu mệnh đề match, thiếu cú pháp nút trong ngoặc tròn và quan hệ trong ngoặc vuông. Lưu ý các truy vấn trong đề viết rút gọn: chúng dùng p vừa làm tên đường đi vừa làm tên nút đích, trên Neo4j thật sẽ báo lỗi biến đã khai báo, nên khi viết thật cần đặt tên nút khác, nhưng ý của từng phương án vẫn đọc được như trên.
Mở trang câu hỏi này →
ABusiness rules
BCleaning data
CSelecting modeling technique
DDeploying models
Lời giải
Đáp án đúng: "Selecting modeling technique". CRISP-DM (Cross-Industry Standard Process for Data Mining, quy trình chuẩn liên ngành cho khai phá dữ liệu) gồm sáu pha: Business Understanding, Data Understanding, Data Preparation, Modeling, Evaluation và Deployment. Pha Modeling (mô hình hoá) bắt đầu bằng việc chọn kỹ thuật mô hình phù hợp như cây quyết định, hồi quy hay phân cụm, sau đó thiết kế cách kiểm thử, xây mô hình và tinh chỉnh tham số. "Business rules" gắn với pha Business Understanding, nơi xác định mục tiêu và ràng buộc nghiệp vụ trước khi chạm tới dữ liệu. "Cleaning data" là việc của pha Data Preparation, diễn ra trước khi mô hình hoá để có dữ liệu sạch làm đầu vào. "Deploying models" thuộc pha cuối Deployment, khi mô hình đã được đánh giá xong và đưa vào vận hành.
Mở trang câu hỏi này →
ABeing able to use personalized data from every single customer for personalized marketing needs
BTo obtain and use customer information for groups of consumers and utilize it for marketing needs
CMarketing to each customer on an individual level and suiting to their needs
DPersonalized marketing addressing individual customer needs
Lời giải
Đáp án đúng: "Being able to use personalized data from every single customer for personalized marketing needs". Personalized marketing (marketing cá nhân hoá) nhờ dữ liệu lớn nghĩa là thu thập, lưu trữ và phân tích dữ liệu riêng của từng khách hàng như lịch sử mua, hành vi duyệt web, vị trí, rồi dựa vào đó đưa ra thông điệp riêng cho từng người; làm được điều này với hàng triệu khách hàng chính là việc của hạ tầng dữ liệu lớn, nên phương án này nêu đúng cả hai vế. Chỗ dễ tranh cãi là "Marketing to each customer on an individual level and suiting to their needs": một số tài liệu ôn tập ghi nó là đáp án và nó không sai về marketing cá nhân hoá, nhưng nó chỉ mô tả marketing cá nhân hoá nói chung mà không nêu vai trò của dữ liệu, trong khi câu hỏi nhắm vào chữ powered by big data. "Personalized marketing addressing individual customer needs" cũng chỉ lặp lại định nghĩa chung, không nói tới dữ liệu. Còn mảnh "for groups of consumers and utilize it" mô tả marketing theo phân khúc (segmentation), nhắm vào nhóm người tiêu dùng chứ không phải từng cá nhân.
Mở trang câu hỏi này →
APay-as-you-go model
BProbabilistic Schema Mapping
CMany sources
DMediated Schema
Lời giải
Đáp án đúng: "Many sources". Bài toán tích hợp thông tin (information integration) trong dữ liệu lớn khó chủ yếu vì số nguồn quá nhiều: hàng trăm, hàng nghìn nguồn với lược đồ, định dạng và chất lượng khác nhau, nên không thể ngồi đối chiếu thủ công từng cặp lược đồ như khi chỉ có vài cơ sở dữ liệu. "Pay-as-you-go model" không phải vấn đề mà là một cách giải: tích hợp dần theo nhu cầu, chỉ ghép những phần thật sự được dùng thay vì tích hợp trọn gói ngay từ đầu. "Probabilistic Schema Mapping" cũng là kỹ thuật giải quyết, gán xác suất cho các ánh xạ lược đồ khi chưa chắc thuộc tính nào khớp với thuộc tính nào. "Mediated Schema" là lược đồ trung gian hợp nhất nhiều lược đồ nguồn để người dùng truy vấn qua một giao diện chung; nó là sản phẩm của quá trình tích hợp, không phải nguyên nhân gây khó.
Mở trang câu hỏi này →
AAcquire
BAnalyze
CPrepare
DReport
Lời giải
Đáp án đúng: "Prepare". Quy trình khoa học dữ liệu thường chia năm bước: thu thập (Acquire), chuẩn bị (Prepare), phân tích (Analyze), báo cáo (Report) và hành động (Act); bước chuẩn bị gồm khám phá dữ liệu để hiểu bản chất của nó rồi tiền xử lý như làm sạch, xử lý giá trị thiếu, chuẩn hoá, chọn và biến đổi đặc trưng, tức là đưa dữ liệu thô về dạng mà mô hình dùng được. "Acquire" chỉ là xác định và lấy dữ liệu về từ các nguồn, dữ liệu lúc đó vẫn còn thô. "Analyze" là bước chọn kỹ thuật phân tích, dựng và đánh giá mô hình, vốn đòi hỏi dữ liệu đã được chuẩn bị xong từ trước. "Report" là trình bày kết quả và phát hiện cho người ra quyết định, nằm ở cuối quy trình nên không còn biến đổi dữ liệu thô nữa.
Mở trang câu hỏi này →
AFlume
BSqoop
CPig
DHive
Lời giải
Đáp án đúng: "Sqoop". Sqoop (ghép từ SQL-to-Hadoop) là công cụ hệ sinh thái Hadoop chuyên chuyển dữ liệu hàng loạt (bulk transfer) giữa Hadoop và cơ sở dữ liệu quan hệ: lệnh import đọc bảng từ MySQL, Oracle qua JDBC rồi ghi vào HDFS, Hive hoặc HBase, lệnh export đẩy kết quả ngược về bảng quan hệ, và bên dưới nó chạy thành các tác vụ MapReduce song song. "Flume" cũng đưa dữ liệu vào Hadoop nhưng dành cho dữ liệu luồng như log sự kiện, gom từ nhiều nguồn sinh liên tục chứ không đọc bảng quan hệ. "Pig" là nền tảng xử lý với ngôn ngữ dòng dữ liệu Pig Latin, dùng để biến đổi dữ liệu đã nằm trong Hadoop chứ không phải cầu nối với cơ sở dữ liệu quan hệ. "Hive" là kho dữ liệu cho phép truy vấn dữ liệu trên HDFS bằng HiveQL giống SQL; nó thường là đích mà Sqoop nạp dữ liệu vào, bản thân không chuyên chuyển dữ liệu từ cơ sở dữ liệu quan hệ.
Mở trang câu hỏi này →
Đề bài
const { MongoClient } = require('mongodb');
async function run() {
  const client = new MongoClient('mongodb://localhost:27017');
  try {
    await client.connect();
    const db = client.db('test');
    const collection = db.collection('products');
    await collection.insertOne({ name: 'Laptop', price: 1000 });
    const result = await collection.findOne({ price: { $gte: 500 } });
    console.log(result.name);
  } finally {
    await client.close();
  }
}
run();

Assume the `products` collection is initially empty.

ALaptop
Bundefined
CThrows an error due to connection failure
Dnull
Lời giải
Đáp án đúng: "Laptop". Lần theo mã: client.connect() mở kết nối tới máy chủ cục bộ, client.db('test').collection('products') lấy collection products đang rỗng; insertOne chèn tài liệu có name là Laptop và price là 1000; findOne với điều kiện price $gte 500 tìm tài liệu đầu tiên có giá lớn hơn hoặc bằng 500, chính là tài liệu vừa chèn vì 1000 thoả điều kiện; console.log(result.name) in Laptop, rồi khối finally đóng kết nối. "undefined" chỉ xảy ra khi tài liệu tìm được không có trường name. "Throws an error due to connection failure" sai vì mã chạy với máy chủ MongoDB ở localhost hoạt động bình thường, không có dấu hiệu lỗi kết nối. "null" là giá trị findOne trả về khi không có tài liệu khớp, nhưng ở đây có tài liệu khớp, và lệnh in result.name chứ không in result.
Mở trang câu hỏi này →
ATo simplify database queries
BTo enable load balancing across CPU cores
CTo add SSL encryption
DTo reduce package size
Lời giải
Đáp án đúng: "To enable load balancing across CPU cores". Một tiến trình Node.js chỉ chạy mã JavaScript trên một luồng nên mặc định chỉ dùng một nhân CPU; module cluster cho tiến trình chính (primary) fork ra nhiều worker, thường bằng số nhân lấy từ os.cpus().length, các worker cùng chia sẻ một cổng và kết nối đến được phân phối giữa chúng, nhờ đó tận dụng mọi nhân, và khi một worker chết có thể fork worker mới thay thế. "To simplify database queries" là việc của driver hoặc ODM như Mongoose, không liên quan cluster. "To add SSL encryption" là việc của module https hoặc reverse proxy như Nginx. "To reduce package size" không liên quan, vì cluster là module có sẵn của Node.js và không đụng tới kích thước gói hay node_modules.
Mở trang câu hỏi này →
AHTTPS uses SSL/TLS to secure data transmission
BHTTP is only used for REST APIs
CHTTPS supports XML while HTTP does not
DHTTP is slower due to encryption
Lời giải
Đáp án đúng: "HTTPS uses SSL/TLS to secure data transmission". HTTPS là HTTP chạy trên một kết nối được bảo vệ bằng TLS (thế hệ sau của SSL): trước khi trao đổi dữ liệu, trình duyệt và máy chủ bắt tay, máy chủ đưa chứng chỉ số để chứng minh danh tính, hai bên thống nhất khoá rồi mã hoá toàn bộ request và response, nên kẻ nghe lén không đọc hay sửa được nội dung. HTTP thì gửi dữ liệu dạng rõ. "HTTP is only used for REST APIs" sai vì HTTP là giao thức chung của web, dùng cho trang HTML, ảnh, tệp, SOAP lẫn REST. "HTTPS supports XML while HTTP does not" sai vì cả hai đều chở được mọi định dạng nội dung như HTML, JSON, XML; khác biệt nằm ở lớp bảo mật chứ không ở định dạng. "HTTP is slower due to encryption" đảo ngược sự thật: HTTP không mã hoá gì, chính HTTPS mới tốn thêm chút chi phí bắt tay và mã hoá, dù ngày nay rất nhỏ.
Mở trang câu hỏi này →
ANestJS eliminates the need for middleware for request processing
BNestJS organizes code into reusable modules with controllers and services
CNestJS automatically handles database migrations for MongoDB
DNestJS provides built-in support for real-time WebSocket communication
Lời giải
Đáp án đúng: "NestJS organizes code into reusable modules with controllers and services". Kiến trúc của NestJS xoay quanh module: mỗi lớp gắn @Module() gom controllers (nhận request), providers như service (chứa logic nghiệp vụ) cùng khai báo imports, exports, nhờ đó từng tính năng như users hay auth được đóng gói riêng, tái sử dụng và kiểm thử được nhờ dependency injection; Express thuần chỉ có router và middleware, cấu trúc thư mục do mỗi nhóm tự đặt. "NestJS eliminates the need for middleware" sai vì NestJS vẫn có middleware, mặc định chạy trên chính Express, và còn thêm guard, interceptor, pipe. "NestJS automatically handles database migrations for MongoDB" sai vì Nest không tự chạy migration; việc đó do ORM hay công cụ riêng đảm nhận. "NestJS provides built-in support for real-time WebSocket communication" có phần đúng vì Nest có gói @nestjs/websockets với gateway, nhưng đó là một tính năng phụ trợ, không phải lợi thế của kiến trúc module mà câu hỏi nhắm tới.
Mở trang câu hỏi này →
5920What is the default port for MongoDB?4 lựa chọn
A80
B3000
C27017
D8080
Lời giải
Đáp án đúng: "27017". Tiến trình mongod mặc định lắng nghe cổng TCP 27017, nên chuỗi kết nối quen thuộc là mongodb://localhost:27017; khi chạy vai trò shard hay config server thì có các cổng mặc định khác như 27018, 27019, và có thể đổi bằng tuỳ chọn port khi khởi động. "80" là cổng mặc định của HTTP cho web server, MongoDB không dùng giao thức HTTP để kết nối. "3000" là cổng mà nhiều ví dụ Express và Node.js chọn theo thói quen, không phải mặc định của MongoDB. "8080" thường dùng cho máy chủ web phụ hoặc proxy như Tomcat, cũng không liên quan MongoDB.
Mở trang câu hỏi này →