DAX Power BI

DAX Power BI đơn giản nhưng việc học DAX không dễ dàng. Vì sao?

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

7 lý do học DAX Power BI không dễ

DAX Power BI

DAX Power BI rất đơn giản, nhưng nó không hề dễ dàng. Mình nghĩ đây là một thực tế mà ai khi học Power BI cũng biết và nhận ra điều đó.

Xem thêm: Làm chủ Power BI thật dễ dàng cùng học viện GNV

Mình đã lặp lại câu này ở hầu hết mọi khóa học trên lớp mà mình đã giảng trong nhiều năm, tại các cuộc đào tạo doanh nghiệp, cuộc họp nhóm đồng nghiệp sử dụng Power BI… và đó là câu thần chú của mình.

Bản thân câu đó không phải của mình. Nó là câu trả lời cho câu hỏi mà mình thường hỏi các học viên của mình vào cuối khóa đào tạo: “Bạn nghĩ gì về DAX bây giờ?”. Khóa học ở GNV, khoảng 1 năm trước, và một học viên đã trả lời như vậy. Mình đã lấy câu nói của học viên đó, và nó đã trở thành một câu thần chú cho cả học viên của mình và bản thân mình.

Câu này là một tổng hợp mạnh mẽ của DAX. Dù sao, câu hỏi là, “Tại sao DAX không dễ, nếu nó đơn giản?”. Trong bài viết này mình muốn mở rộng chủ đề và chỉ muốn chia sẻ kinh nghiệm dạy DAX cho các học viên của mình và để nêu bật lý do tại sao – đối với nhiều người – DAX là thứ khó khăn, được một số thầy phù thủy làm chủ và được truyền lại qua giọng nói của họ cho một số ít học viên đã giác ngộ. Sự thật là hoàn toàn khác: ai cũng có thể học DAX; tại SQLBI, mình không phải là thuật sĩ. Hoặc có thể mình … Trong trường hợp đó, mình muốn chia sẻ bí mật của mình để bất kỳ độc giả có thể tham gia thuật sĩ bí mật của các nhà phát triển DAX!

Lý do số 1: DAX là một ngôn ngữ chức năng

Theo quan điểm toán học, ngôn ngữ hàm cực kỳ tao nhã. Tuy nhiên, chúng cũng rất phản trực giác. Là con người, khi chúng ta mô tả một thuật toán, chúng ta sẽ làm theo các bước. Chúng mình không cung cấp hàm tính toán kết quả: chúng mình cung cấp các bước để đạt được kết quả. Hãy tưởng tượng bạn cần lắp ráp một món đồ nội thất mới mà bạn vừa mang về nhà. Hãy để chúng mình nói rằng nó là một chiếc ghế.


Bạn mở hướng dẫn và tìm thấy cái này: [dax] CHAIR = ADD (USESCREW (Back), REPEAT (4, ADD (USESCREW (Leg), Seat))) [/ dax] Điều đó thật đáng buồn phải không? Nếu bạn dịch nó từ chức năng sang lặp đi lặp lại, nó nói: thêm chân vào ghế bằng cách sử dụng vít, 4 lần. Sau khi hoàn thành, hãy sử dụng một số vít khác để thêm lưng vào ghế. Et voilà, bạn đã đóng một chiếc ghế! Mặc dù mình hy vọng sẽ không có ai hướng dẫn chức năng cho mình trong một bộ đồ nội thất, nhưng với DAX, bạn cần phải học cách suy luận theo cách chức năng. Đạt được kỹ năng này cần nhiều thời gian và nỗ lực. Ngôn ngữ chức năng không có gì mới. Họ đã quay trở lại thời LISP, trong tiền sử của CNTT – vâng, mình đã ở khoảng thời gian đó.


Họ không bao giờ được nhiều người biết đến, chủ yếu là vì họ rất khó học hỏi. Như đã nói, một thuật toán được thể hiện bằng ngôn ngữ chức năng có thể được tối ưu hóa dễ dàng hơn nhiều so với thuật toán tương tự được thể hiện bằng ngôn ngữ lặp lại – nghĩa là hướng dẫn từng bước, như bạn mong đợi cho bộ đồ nội thất mới của mình. Có chức năng là một phần của cái giá bạn cần trả để có một ngôn ngữ nhanh. Nếu bạn gặp khó khăn với bản chất chức năng của DAX, làm thế nào bạn có thể cải thiện trải nghiệm của mình? Thực hành, thực hành và thực hành lại. Tại một thời điểm nào đó, não của bạn bắt đầu đọc các ngôn ngữ chức năng. Thực hành là điều duy nhất giúp ích ở đây. “Tư duy chức năng” là khó và phản trực giác; thực hành là vũ khí duy nhất của bạn. Dẫn chúng ta đến lý do số 2.

Lý do số 2: Thực hành, thực hành và thực hành

DAX là công việc của chúng mình: chúng mình dành khá nhiều thời gian để viết và dạy DAX. Tất cả các ngày. Đây là cách bạn trở thành một chuyên gia: bằng cách luyện tập. Với DAX, điều đó có nghĩa là thực hành rất nhiều! Khi nói đến Power BI, hầu hết người dùng không dành toàn bộ thời gian của họ để chuẩn bị báo cáo ngày này qua ngày khác.

DAX Power BI

Điều này hoàn toàn có ý nghĩa: một báo cáo nhằm tạo ra các con số và người dùng được kỳ vọng sẽ lý giải những con số đó chứ không chỉ tạo ra chúng. Bất kỳ người dùng thông thường nào cũng cần DAX khi chuẩn bị báo cáo, nhưng đây chỉ là một phần nhỏ trong công việc hàng ngày của người đó. Vì vậy, những gì sẽ xảy ra là bạn có một vài ngày để chuẩn bị báo cáo, và sau đó hàng tuần, có thể hàng tháng trôi qua mà bạn không viết bất kỳ DAX nào.

Cho đến khi bạn cần cập nhật báo cáo. Đoán xem nào? Bạn đã phải vật lộn để tìm hiểu một số chi tiết khi lần đầu tiên viết báo cáo, và sau nhiều tuần không thực hành, bạn phát hiện ra rằng mình đã quên mọi thứ. Bắt đầu lại thật là bực bội. Cuối cùng bạn thành công với bước tiếp theo, và sau đó bạn trải qua một vòng tháng khác mà không cần viết DAX. Và chu kỳ tiếp tục. Có một giải pháp cho điều này? Đúng. Kết hợp DAX trong công việc hàng ngày của bạn.

Điều này có nghĩa là nếu bạn làm việc trong một nhóm bao gồm nhiều người xây dựng báo cáo, có thể bạn có thể trở thành chuyên gia DAX để dành nhiều thời gian hơn cho việc viết DAX và ít thời gian hơn để phân tích các con số. Nếu bạn không thể làm việc cả ngày trên DAX, ít nhất hãy cố gắng phân bổ một chút thời gian mỗi tuần để hoàn thành công việc của bạn. Đừng để nhiều tháng trôi qua mà không viết một công thức nào hoặc hiểu một khái niệm mới.

Điều tương tự có thể được nói về bất kỳ kỹ năng nào. DAX có gì khác so với các ngôn ngữ khác không? Có và không. Sau một vài tháng không thực hành SQL, bạn sẽ không gặp vấn đề gì khi viết một câu lệnh SELECT đơn giản. Nhưng thay đổi một truy vấn phức tạp với năm phép nối và hai truy vấn con tương quan không phải là một nhiệm vụ tầm thường nếu bạn đã mất niềm tin với SQL. DAX không khác biệt lắm, mặc dù các chi tiết quan trọng hơn và ít hiển thị hơn. DAX ít dài dòng hơn SQL.

Lý do số 3: Một số khái niệm quan trọng

Toàn bộ ngôn ngữ DAX chỉ dựa trên một số khái niệm:

  • Evaluation contexts
  • Iterators
  • Context transition
  • Expanded tables

Nếu bạn nắm vững bốn điều này, bạn là một chuyên gia về DAX. Nếu bạn dừng lại ở ba bước đầu tiên, bạn là một ninja DAX. Với hai cách đầu tiên, bạn đã là một chuyên gia giỏi. Vấn đề là: bạn cần phải nắm vững chúng, không chỉ có một số kiến ​​thức cơ bản về những gì chúng là. Hơn nữa, đây là những khái niệm cơ bản: chúng không liên quan gì đến các chức năng cụ thể.

Vì vậy, làm thế nào để bạn trở thành một guru DAX? Học DAX không có nghĩa là học tất cả các chức năng hoạt động trong từng chi tiết. Bạn có thể là một chuyên gia mà không cần biết ý nghĩa của đối số thứ ba của RANKX. Để có loại kiến ​​thức chi tiết đó, bạn có thể đọc các bài báo, dax.guide và nhiều nguồn thông tin khác bất cứ lúc nào. Các chủ đề cơ bản chính là khác nhau. Bạn cần phải học và hiểu thật kỹ về nền tảng. Bạn cần biến chúng thành của mình. Một cách sâu sắc.

Bằng cách thực hành và bằng cách viết rất nhiều mã; bằng cách hiểu chính xác những gì xảy ra dưới mui xe. Đừng ngừng nghiên cứu một công thức chỉ vì nó hoạt động… Bạn cần phải hiểu sâu sắc về cách nó hoạt động. Điều này có nghĩa là nắm vững nền tảng của DAX. Làm thế nào bạn có thể học những chủ đề cơ bản này?

Tò mò! Đừng viết công thức với mục tiêu duy nhất là tạo ra một con số. Hãy tò mò để hiểu chính xác cách công thức được đánh giá và liệu nó có thực sự là cách tốt nhất để tính toán con số đó hay không. Nếu mã của bạn tạo ra lỗi, đừng cố gắng sửa nó bằng cách thêm một CALCULATE ở đây và ở đó cho đến khi nó hoạt động. Vâng, mình biết: tất cả chúng ta đã ở đó. Nhưng bạn cần phải đi xa hơn: dừng lại, đọc mã, hiểu chính xác điều gì sai với nó. Chỉ khi bạn biết vấn đề, thì đó là lúc để sửa chữa nó.

Lý do số 4: DAX rất logic

Điều này thực sự xuất phát từ hệ quả của những điểm trước đây: DAX là một ngôn ngữ dựa trên toán học, được xây dựng dựa trên một số chủ đề cơ bản. Nếu DAX là một lý thuyết toán học mới, điều này sẽ hoàn hảo.

DAX Power BI

Thật không may, DAX không phải là một lý thuyết toán học: nó là ngôn ngữ bạn sử dụng để xây dựng báo cáo. Tuy nhiên, nó dựa trên các khái niệm giống như một lý thuyết toán học. Bây giờ, nếu bạn là một kiểu người rất logic, thì có lẽ bạn sẽ yêu thích DAX. Rất hợp lý, tôi có nghĩa là bạn thích dành hàng giờ cho các trò chơi bí ẩn và câu đố. Mặt khác, nếu đó không phải là tách trà của bạn, thì DAX sẽ cần một chút làm quen.

May mắn thay, có một cách dễ dàng để tránh vấn đề này: hãy nghĩ về DAX như thể nó là một trò chơi. Khi bạn bắt đầu, đừng sử dụng nó để giải quyết các vấn đề thực tế. Thay vào đó, hãy bắt đầu với những trò chơi đơn giản. Như: “Này, không có vấn đề gì, tôi muốn viết một biểu thức duy nhất tính độ tuổi trung bình của khách hàng tại thời điểm họ mua đôi giày đầu tiên từ cửa hàng của tôi”. Bạn có thể dành hàng giờ, có thể là nhiều ngày để giải quyết vấn đề này. Và đó sẽ là thời gian hiệu quả nhất từng được đầu tư trên con đường học DAX của bạn. Bạn sẽ buộc mình phải học những nền tảng, với một nỗ lực dũng cảm để phấn đấu cho sự hoàn hảo.

Nếu tâm trí của bạn đi thẳng vào câu: “Tôi cần con số này, không quan trọng công thức đó đẹp hay nhanh, tôi chỉ muốn nó được tính toán”, thì… bạn có thể sẽ lãng phí rất nhiều thời gian. Cố gắng học DAX bằng cách chỉ giải quyết các vấn đề thực tế không phải là cách để làm điều đó: bạn cần lý thuyết. Học lý thuyết từ thực hành là một con đường khó hơn nhiều. Điều tốt là – nếu bạn học DAX như một trò chơi – thì sẽ rất thú vị. Hãy tin tưởng chúng tôi, học DAX rất thú vị – nếu bạn làm đúng!

Lý do số 5: DAX rất chi tiết

DAX Power BI

Thông tin chi tiết… thông tin chi tiết ở khắp mọi nơi. Con người không yêu thích những chi tiết nhỏ; chúng tôi muốn hiểu bức tranh lớn, hãy để lại chi tiết cho phần sau. Nhưng DAX có thể khá khó tha thứ nếu bạn quên một chi tiết nhỏ trong công thức. Bạn quên rằng bối cảnh hàng không truyền qua các mối quan hệ?

Bạn nhận được một kết quả không chính xác. DAX sẽ quay đầu lại và nghĩ rằng bạn nên biết rõ hơn, bạn của tôi. Bạn không nhớ rằng một bộ lọc bảng trong CALCULATE hoạt động trên bảng mở rộng? Đoán xem nào? Điều duy nhất DAX sử dụng để cảnh báo bạn về vấn đề là một kết quả không chính xác. Không có gì đáng ngạc nhiên về hành vi này: DAX tính toán những gì bạn yêu cầu nó tính toán.

Nếu bạn đặt câu hỏi sai, bạn sẽ nhận được câu trả lời sai. Thông thường và đơn giản. Sao bạn hỏi sai câu hỏi? Điều này, một lần nữa, quay trở lại lý thuyết nền tảng của DAX: bạn cần phải nắm vững lý thuyết cơ bản. Nếu bạn thực sự nghiêm túc về việc trở thành một chuyên gia về DAX, bạn không chỉ cần hiểu nó mà còn phải thành thạo nó.

Bạn sẽ nắm vững lý thuyết khi bạn đã thực hành với hàng tấn công thức và bạn hiểu chính xác cách các phần liên kết với nhau trong một công thức. Khi bạn đã thử một số biến thể của cùng một mã, với mục đích duy nhất là hiểu chính xác cách một thay đổi nhỏ ảnh hưởng đến kết quả. Khi bạn đã tìm hiểu tất cả các chi tiết. Sau nhiều lần luyện tập, bạn đạt đến mức độ thành thạo như vậy thì việc viết công thức sẽ đến một cách tự nhiên. Hãy nhớ rằng, bạn chỉ đặt tiêu chuẩn ở cấp độ này khi bạn đã chuẩn bị tốt nghiệp từ chuyên gia DAX lên DAX ninja, hoặc thậm chí là chuyên gia DAX.

Khi bạn đã đạt đến điểm này, DAX không có bí mật. Tôi biết tôi đang lặp lại chính mình, nhưng vấn đề là: nếu công thức của bạn tạo ra kết quả sai, thì rất có thể bạn đã quên một chi tiết. Không sửa công thức cho đến khi bạn hiểu số sai là bao nhiêu. Tôi biết rằng nó không hữu ích để có thể mô tả những gì một số sai đại diện. Trên thực tế, nó là: nó cực kỳ hữu ích. Hiểu được con số sai là gì buộc bạn phải khám phá ra chính xác vấn đề nằm ở đâu. Nếu kết quả của công thức của bạn là sai, điều đó có nghĩa là bộ não của bạn vẫn chưa nắm vững các khái niệm cơ bản. Dừng lại, tìm hiểu những điều cơ bản một lần nữa, và sau đó tiếp tục.

Lý do số 6: Bạn cần một trình biên tập tốt

Nếu bạn nghĩ rằng viết DAX trong một hộp văn bản là một trải nghiệm chán nản và bạn đang tự hỏi tại sao chúng mình không có một trình soạn thảo đầy đủ tính năng và mạnh mẽ… thì, mình hoàn toàn cảm thấy đau đớn của bạn. Xây dựng một mô hình phức tạp với hàng chục thước đo DAX giống như viết một cuốn sách 800 trang trên điện thoại di động của bạn, nơi bạn có thể xem từng đoạn một.

DAX Power BI

Dù lý do là gì, việc tạo DAX trong hộp văn bản có lẽ là thứ duy nhất không đổi kể từ phiên bản DAX đầu tiên, trong Power Pivot dành cho Excel. Mặc dù rất cần một trình soạn thảo tốt cho DAX, nhưng Microsoft đã không cung cấp. Bên cạnh đó, người dùng chưa tạo đủ áp lực để có được một trình soạn thảo tốt hơn. Thật vậy, bạn có thể tìm thấy một số ý tưởng trên idea.powerbi.com, nhưng chúng không nhận được đủ số phiếu bầu để buộc các kỹ sư của Microsoft phải xem xét chúng.

Đây là một điều đáng tiếc. Đối với mình, việc không có một trình soạn thảo tốt là một trong những lý do chính khiến việc học DAX có vẻ khó khăn. Mình đã thấy nhiều sinh viên bắt đầu ngộ ra khi trong quá trình đào tạo, họ được cung cấp tùy chọn sử dụng DAX Studio thay vì Power BI để viết DAX. Bằng cách viết các truy vấn đơn giản, bằng cách xem ngay kết quả, bằng cách định dạng mã bằng cách nhấn phím, bộ não của họ đột nhiên được giải phóng khỏi nhiều ràng buộc giao diện người dùng nhỏ và nó có tùy chọn thử nhanh các biến thể khác nhau của cùng một biểu thức.

Là một giáo viên, mình đã học cách nhận biết khi nào mắt học sinh bắt đầu sáng lên khi chúng đột nhiên hiểu được những gì chúng đang làm. Nó thường xảy ra chính xác tại thời điểm đó. Nếu bạn muốn học DAX, hãy bắt đầu với DAX Studio. Tải xuống nó; học nó; sử dụng nó để thử các đoạn mã DAX khác nhau. Hãy tin tưởng mình, đó là thời gian được sử dụng rất tốt. Mặc dù đúng là Microsoft đang thiếu một trình soạn thảo tốt cho DAX, nhưng cũng đúng vì họ là một công ty rất cởi mở, đủ khiêm tốn để người khác lấp đầy khoảng trống khi họ biết có một số. Việc tích hợp Power BI với DAX Studio và Tabular Editor sẽ chỉ trở nên tốt hơn theo thời gian. Do đó, mình tin rằng lý do này – mặc dù thuyết phục – sẽ sớm biến mất.

Lý do số 7: Thử nghiệm và lỗi chỉ đơn giản là không hoạt động

DAX Power BI

Nếu bạn đã đọc tất cả mọi thứ cho đến nay, điểm cuối cùng này sẽ không có gì ngạc nhiên. Cách nhiều người học một ngôn ngữ mới là sử dụng các ví dụ trên googling, thử chúng trên mô hình của họ, sửa lỗi và tinh chỉnh mọi thứ cho đến khi nó hoạt động.

Không có gì sai với cách tiếp cận này: nó hoạt động với hầu hết các ngôn ngữ lập trình. Thành thật mà nói, nó hoạt động với hầu hết các chủ đề. Đó là cách chúng tôi học nói! Không có lý thuyết, chỉ có rất nhiều ví dụ và rất nhiều sai lầm. DAX giống như toán học, thống kê, vật lý. Bạn không thể học DAX chỉ bằng cách thử và sai.

Bạn cần học nó giống như cách bạn học một chủ đề toán học: bạn nghiên cứu nó. Bạn chỉ tiến hành bước tiếp theo khi bước trước đó đã hiểu và chắc chắn. Tôi biết, hầu hết người dùng học DAX vì họ muốn giải quyết một vấn đề cụ thể. Họ không ở trong đó để học một ngôn ngữ lập trình mới; họ chỉ muốn báo cáo tiếp theo được thực hiện vào ngày hôm qua.

Thật không may, cách tiếp cận này không hiệu quả với DAX, vì cần thêm thời gian để sửa phép tính khi kết quả không như bạn mong đợi. Nếu bạn muốn học DAX, hãy dành thời gian cần thiết để học nó một cách đúng đắn. Đừng cố gắng giải quyết những vấn đề phức tạp trước khi bạn có đủ kiến ​​thức cần thiết để hiểu chính xác những gì bạn đang làm. Một khi bạn nắm vững các khái niệm cơ bản, bạn sẽ có thể giải quyết các vấn đề phức tạp hơn.

Nếu bạn cần đường trung bình trong 30 ngày làm việc qua, bạn không thể tìm kiếm công thức trên web, hãy sao chép và dán công thức đó và hy vọng điều tốt nhất. Ý tôi là, bạn có thể, nếu bạn đủ thành thạo để khắc phục bất kỳ vấn đề nào bạn có thể gặp phải. Đầu tiên, thu thập kiến ​​thức về các nguyên tắc cơ bản, sau đó sao chép và dán sẽ hoạt động tốt.

Kết luận

Đã đến lúc rút ra một số kết luận về lý do tại sao DAX đơn giản, nhưng không dễ dàng. Đối với tôi, tất cả là vấn đề bạn tiếp cận quá trình học như thế nào. DAX đơn giản, có nghĩa là các nguyên tắc cơ bản của ngôn ngữ này không phức tạp. Chúng đơn giản và có rất ít. Nhưng bạn cần phải tự rèn luyện lại nhiều lần, cho đến khi bạn thực sự thuần thục và hiểu được chúng.

Nếu bạn thành công, thì DAX cũng dễ dàng. Nếu bạn không làm như vậy, hoặc bạn chỉ chạy quá nhanh về mục tiêu của mình, thì việc học DAX sẽ trở nên rất khó khăn. Như tôi đã nói trong phần giới thiệu: tại SQLBI, chúng tôi không phải là pháp sư. Chúng tôi đã luyện tập trong nhiều năm. Chúng tôi muốn hiểu. Chúng tôi không đơn độc chút nào. Cả một thế hệ các nhà phát triển DAX tuyệt vời đang tăng lên.

Chúng ta có thể thấy điều này trong chất lượng ngày càng cao của các bài đăng trên blog của các tác giả và nhà phát triển, những người viết mã DAX thanh lịch và hiệu quả. Tôi cá là tất cả các nhà phát triển này đã dành rất nhiều thời gian để tìm hiểu các nguyên tắc cơ bản. Nếu tôi đưa ra một lời khuyên duy nhất cho bất kỳ thành viên mới nào trong DAX, thì đây sẽ là: thực hành các nguyên tắc cơ bản.

Đó cũng là lời khuyên mà bất kỳ huấn luyện viên dày dạn kinh nghiệm nào cũng dành cho một vận động viên trẻ háo hức.

Thực hành các nguyên tắc cơ bản.

Đừng bỏ cuộc khi mọi thứ vẫn còn mờ nhạt: quay trở lại các nguyên tắc cơ bản, nghiên cứu chúng một lần nữa. Kết quả tốt sẽ theo sau. Chúng tôi biết nó đã làm việc cho chúng tôi. Nó cũng sẽ làm việc cho bạn. Tận hưởng DAX!

Quang Nguyễn (Microsoft Certified Trainer)

Đăng ký tư vấn khóa học
Vui lòng chọn các khóa học bạn quan tâm để có thể nhận được tư vấn phù hợp nhất

Nội dung